广告广告
  加入我的最爱 设为首页 风格修改
首页 首尾
 手机版   订阅   地图  繁体 
您是第 4048 个阅读者
 
发表文章 发表投票 回覆文章
  可列印版   加为IE收藏   收藏主题   上一主题 | 下一主题   
pkpk0808 手机
数位造型
个人文章 个人相簿 个人日记 个人地图
初露锋芒
级别: 初露锋芒 该用户目前不上站
推文 x1 鲜花 x9
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片
推文 x0
[C/C++][范例] [C]quicksort
第一次po请多多指教!!
quicksort之前已经由网友amd0607大 发表过java版
我的是C版 用的方式是相似的..呵呵..
请各位参考参考啰!!

========================================================
Quick sort快速排序法

演算法:
选出一个pivot 将每个数与其做比较 大的一边 小的一边 (1)
刚的动作称为partition
将pivot置入两者间
并将左右两堆再次送入quick_sort

(1)方法:
以第一个数为pivot 设定一个标的pt_big指向第二个元素
另一个标的pt_small 指向最后一个元素
pt_big的作用为向右寻找一个比pivot大的数
pt_small则由后向左寻找一个比pivot小的数
当双方都有找到的时候 便做交换 然后继续找 所以for loop不用初始值

而如果pt_big>pt_small时表示两个标的交错了 也就是没找到
此时跳出分区段的回圈

然后位在pt_small的值与pivot做交换

于是又分成两区段(begin~ pt_small-1) (pt_big ~ end) 分别再做quick sort

※排到后面的时候 剩下只有少数元素 又必须分堆 标的寻找 有点浪费时间和没有效率
也许可以设成 元素少于某个数字时 便改做其他排序 例如insertion sort等
可以自行试试看


输入为一串数字 并以一个字母代表结束
如果只输入一个字母便结束程式
Sample Input:
15 18 7 11 3 19 21 12 20 q
32 65 95 63 21 00 33 22 22 33 a
q

输出为排序好的数列
Sample Output:
3 7 11 12 15 18 19 20 21
0 21 22 22 32 33 33 63 65 95

========================= ..

访客只能看到部份内容,免费 加入会员 或由脸书 Google 可以看到全部内容




献花 x0 回到顶端 [楼 主] From:台湾中华电信 | Posted:2005-01-26 17:48 |

首页  发表文章 发表投票 回覆文章
Powered by PHPWind v1.3.6
Copyright © 2003-04 PHPWind
Processed in 0.072413 second(s),query:15 Gzip disabled
本站由 瀛睿律师事务所 担任常年法律顾问 | 免责声明 | 本网站已依台湾网站内容分级规定处理 | 连络我们 | 访客留言