//填坑和分治的思想,和基准值比较,比基准值大的放在它的右边,比基准值小的放在它的左边
void quickSort(int array[], int low, int high)
{
if (low >= high)//递归的终止条件
{
return;
}
int i = low;
int j = high;
key = array[i];
while (i < j)
{
while (i < j && array[j] >= key)
{
j--;
}
if (i < j)
{
array[i++] = array[j];
}
while (i < j && array[i] < key)
{
i++;
}
if (i < j)
{
array[j--] = array[i];
}
}
array[i] = key; //坑的位置放入基准值
quickSort(array, low, i-1);//前半部分同样的思想
quickSort(array, i+1, high);//后半部分同样的思想
}
//冒泡排序,一趟排序之后最大或者最小的数被移动的末尾
void swapSort(int array[], int len)
{
for(int i = 0; i < len; i++) //要进行的趟数
{
bool flag = true;
for(int j = 0; j < len - i; j++) //移动交换元素
{
if (array[j] > array[j+1])
{
int tmp = array[j];
array[j] = array[j+1];
array[j+1] = tmp;
flag = false;
}
}
if (flag)
{
break;
}
}
}
交换类排序(冒泡和快排)
最新推荐文章于 2022-08-02 10:08:39 发布