发布网友
共3个回答
热心网友
数据结构快速排序法原理:快速排序是对冒泡排序的一种改进。它的基本思想是:通过一趟排序将要排序的数据分割成的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。
25,84,21,47,15,27,68,35,24 快速排序方法:
热心网友
有点像2分吧
有2个指针i,j分别从左往右扫,一开始i=1,j=9,以a[(i+j) div 2]为中间值mid去比较排序达到划分为左右2部分(左边最大数<=右边最小数)。
第一次mid:=a[5],则mid=15
然后开始加i直到a[i]>=mid,减j到a[j]<=mid,也就是i,j指到了25,15,然后交换,则顺序变为了15,84,21,47,15,27,68,35,24。然后继续扫,i=2时因为15是最小的数了,所有j再往左扫到最后会为0(j指向a[0]),因为i>j所以就不再扫了。
然后就是1分为2分了,分为(1,j)跟(i,9)继续排序
由于j=0所以(1,j)部分没做,继续做(2,9)部分排序{84,21,47,25,27,68,35,24},同理反复操作,直到排序完成。
快排讲起来不大好理解,自己可以拿张纸随便写几个数模拟下,这样就很清楚了,有什么疑问直接给我发消息吧
热心网友
看看这个吧,里面讲的十分详细了已经。
http://hi.baidu.com/apollo_hj/blog/item/d39a372bb3fea93e5243c110.html
---
以上,希望对你有所帮助。