快速排序算法代码c语言 c语言快速排序算法


快速排序是一种不稳定排序,它的时间复杂度为O(n·lgn),最坏情况为O(n2);空间复杂度为O(n·lgn) 。
这种排序方式是对于冒泡排序的一种改进,它采用分治模式,将一趟排序的数据分割成独立的两部分,其中一组数据的每个值都小于另一组 。每一趟在进行分类的同时实现排序 。
【快速排序算法代码c语言 c语言快速排序算法】其中每一趟的模式通过设置key当基准元素,key的选择可以是数据的第一个,也可以是数据的最后一个 。这里以每次选取数据的第一个为例:
另外,关于C/C编程学习,小编给大家提供一个学习.交.流群,欢迎到访:569268376
具体代码实现:
#include
#define N 6
int fun(int arr[],int low,int high)
{
int key;
key=arr[low];
while(low {
while(low=key)
high–;
if(low arr[low]=arr[high];
while(low low;
if(low arr[high–]=arr[low];
}
arr[low]=key;
return low;
}
void quick_sort(int arr[],int start,int end)
{
int pos;
if(start {
pos=fun(arr,start,end);
quick_sort(arr,start,pos-1);
quick_sort(arr,pos 1,end);
}
}
int main()
{
int i;
int arr[N]={32,12,7,78,23,45};
for(i=0;i {
printf(“%d “,arr[i]);
}
printf(“n”);
quick_sort(arr,0,N-1);
for(i=0;i {
printf(“%d “,arr[i]);
}
return 0;
}

    推荐阅读