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

c语言快速排序算法_快速排序算法代码c语言,第1张

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


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


每一趟在进行分类的同时实现排序。


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


这里以每次选取数据的第一个为例:另外,关于C/C++编程学习,小编给大家提供一个学习.交.流群,欢迎到访:569268376具体代码实现:#include<stdio.h>#define N 6int 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;}

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/645400.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-17
下一篇 2022-04-17

发表评论

登录后才能评论

评论列表(0条)

保存