• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

C语言简单实现快速排序

c语言 搞代码 4年前 (2022-01-06) 16次浏览 已收录 0个评论

快速排序是一种不稳定排序,这篇文章主要为大家详细介来源gaodaimacom搞#^代%!码&网绍了C语言简单实现快速排序,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

快速排序是一种不稳定排序,它的时间复杂度为O(n・lgn),最坏情况为O(n2);空间复杂度为O(n・lgn)。
这种排序方式是对于冒泡排序的一种改进,它采用分治模式,将一趟排序的数据分割成独立的两部分,其中一组数据的每个值都小于另一组。每一趟在进行分类的同时实现排序。

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

具体代码实现:

 #include #define N 6 int fun(int arr[],int low,int high) { int key; key=arr[low]; while(low<high) { while(low=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); main() i; 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); 0; 

由于是第一次撰写博客,许多地方没有一个良好的习惯,还请读者见谅。创建这个博客的目的实际上是为了让自己对于数据结构与算法加深印象,通过博客的形式展现出来一方面方便自己查阅,另一方面以希望能够通过自己的微薄之力帮助到有需要的朋友。

也希望自己能够坚持下去,认真的去做这么一件事。

以上就是C语言简单实现快速排序的详细内容,更多请关注gaodaima搞代码网其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:C语言简单实现快速排序
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址