//库函数调用快速排序:
--------------------------------------------------------------------------------
#include<stdio.h>
#include<stdlib.h>
int sort(const void *a, const void *b)
{
return *(int *)a - *(int *)b;
}
int main()
{
int i;
int arr[6] = {1, 3, 5, 2, 4, 6};
qsort(arr, 6, sizeof(int),sort);
for (i = 0; i < 6; i++)
printf("%d ",arr[i]);
return 0;
}
--------------------------------------------------------------------------------
//快速排序
#include<stdio.h>
void quick_sort(int s[], int l, int r)
{
if (l < r)
{
int i = l, j = r, x = s[l]; //x为基数
while (i < j)
{
while(i < j && s[j] >= x) // 从右向左找第一个小于x的数
j--;
if(i < j)
s[i++] = s[j];
while(i < j && s[i] < x) // 从左向右找第一个大于等于x的数
i++;
if(i < j)
s[j--] = s[i];
}
s[i] = x;
quick_sort(s, l, i - 1); // 递归调用 分治思想 左边分治
quick_sort(s, i + 1, r); //右边分治
}
}
int main()
{
int a[10] = {72, 6, 57, 88, 60, 42, 83, 73, 48, 85};
int i = 0, j = 9;
quick_sort(a, i, j);
for (i = 0; i < 10; i++)
printf("%d ",a[i]);
return 0;
}
快速排序
最新推荐文章于 2021-11-19 16:57:43 发布