日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

快速排序算法QuickSort(二)

發布時間:2024/1/17 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 快速排序算法QuickSort(二) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.說明

這個快速排序算法是對前面的?快速排序算法QuickSort??一種改進。

只是修改了int Partition(int arry[],int start,int end)這個方法。

2.思路

仔細觀察我們可以發現,我們前面Partition方法中,都需要swap(arry,start,end),?但是這一步中有些步驟是可以省略的。?

在(<-end)過程中,碰到第一個小于等于pivot的元素時,只需要進行一次賦值arry[start]=arry[end];?因為當前的arry[start]是值就是pivot?;

在(start->)過程中,碰到第一個大于等于pivot的元素之,只需要進行一次賦值arry[end]=arry[start];?因為當前的arry[end]的值就是pivot的值。

整個過程中,不是start就是end指向pivot所存儲的單元?,所以在整個過程中,pivot沒有必要每次通過swap來保存,只需要在最后找到pivotkey的時候,?令arry[pivotkey]=pivot即可。?

具體修改如下代碼實例。

3.改進的快速排序QuickSort

View Code

PS:2012-5-4

今天發現以前一直以為對的快排寫錯了,因此沒有考慮需要排序的數相等的情況,如果排序的數組中有相同的數,那么就會出現死循環,一直沒有結果,要做的修改就是修改Partition函數,修改以后如下:

View Code

做的唯一修改就是將原來的arry[end]>pivot改為arry[end]>=pivot,arry[start]<pivot改為arry[start]<=pivot

快排練習(PS:2012-10-2)

View Code

?





本文轉自xwdreamer博客園博客,原文鏈接:http://www.cnblogs.com/xwdreamer/archive/2011/06/16/2296999.html,如需轉載請自行聯系原作者

總結

以上是生活随笔為你收集整理的快速排序算法QuickSort(二)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。