小樱知识 > 生活常识c语言快速排序算法(快速排序算法代码c语言)

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

提问时间:2022-03-16 13:03:53来源:小樱知识网


快速排序是一种不稳定排序,它的时间复杂度为O(n·lgn),最坏情况为O(n2);空间复杂度为O(n·lgn)。

这种排序方式是对于冒泡排序的一种改进,它采用分治模式,将一趟排序的数据分割成独立的两部分,其中一组数据的每个值都小于另一组。每一趟在进行分类的同时实现排序。

其中每一趟的模式通过设置key当基准元素,key的选择可以是数据的第一个,也可以是数据的最后一个。这里以每次选取数据的第一个为例:

另外,关于C/C++编程学习,小编给大家提供一个学习.交.流群,欢迎到访:569268376

具体代码实现:

#include<stdio.h>

#define N 6

int fun(int arr[],int low,int high)

{

int key;

key=arr[low];

while(low<high)

{

while(low<high && arr[high]>=key)

high–;

if(low<high)

arr[low++]=arr[high];

while(low<high && arr[low]<=key)

low++;

if(low<high)

arr[high–]=arr[low];

}

arr[low]=key;

return low;

}

void quick_sort(int arr[],int start,int end)

{

int pos;

if(start<end)

{

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<N;i++)

{

printf(“%d “,arr[i]);

}

printf(“n”);

quick_sort(arr,0,N-1);

for(i=0;i<N;i++)

{

printf(“%d “,arr[i]);

}

return 0;

}

以上内容就是为大家推荐的c语言快速排序算法(快速排序算法代码c语言)最佳回答,如果还想搜索其他问题,请收藏本网站或点击搜索更多问题

内容来源于网络仅供参考
二维码

扫一扫关注我们

版权声明:所有来源标注为小樱知识网www.xiaoyin02.com的内容版权均为本站所有,若您需要引用、转载,只需要注明来源及原文链接即可。

本文标题:c语言快速排序算法(快速排序算法代码c语言)

本文地址:https://www.xiaoyin02.com/shcs/118362.html

相关文章