You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
void ShellSort(int* myAarray, int arrayNum)
{
int d = arrayNum / 2; //初始增量设为数组长度的一半
while(d >= 1)
{
for (int i = d; i < arrayNum; i += 1)
{
int j = i - d;
int temp = myAarray[i];
while (j >= 0 && myAarray[j] > temp) //从后向前,找到比其小的数的位置
{
myAarray[j+d] = myAarray[j]; //向后挪动
j -= d;
}
if (j != i - d) //存在比其小的数
myAarray[j+d] = temp;
}
d = d / 2;
}
}
冒泡排序
void BubbleSort(int *myArray)
{
int len=sizeof(myArray);
for (int i = 0; i < len-1; i++)
{
for(int j = 0 ;j < len - i - 1; j++)
{
if(myArray[j] < myArray[j + 1])
{
int temp = myArray[j];
myArray[j] = myArray[j + 1];
myArray[j + 1] = temp;
}
}
}
}
快速排序
void QuickSort(int a[],int left,int right)
{
int i=left;
int j=right;
int temp=a[left];
if(left>=right)
return;
while(i!=j)
{
while(i<j&&a[j]>=temp)
j--;
if(j>i)
a[i]=a[j];
while(i<j&&a[i]<=temp)
i++;
if(i<j)
a[j]=a[i];
}
a[i]=temp; //把基准插入,此时i与j已经相等
QuickSort(a,left,i-1); //递归左边
QuickSort(a,i+1,right); //递归右边
}
void main()
{
int a[9]={8,2,6,12,1,9,5,5,10};
int i;
QuickSort(a,0,8);
for(i=0;i<9;i++)
cout<<a[i]<<endl;
}
简单选择排序
void SelectionSort(int *myArray, int n)
{
int index, value;
for (int i = 0; i < n - 1; i ++)
{
value = i;
for (int j = i + 1; j < n; j ++)
if (myArray[i] > myArray[j])
{
value=j;
}
if(i!=value)
{
int temp=myArray[i];
myArray[i]=myArray[value];
myArray[i]=temp;
}
}
}