前幾天寫了二分查詢,今天重新來看快速排序。發現他們有許多共同的地方。
先說說二分的思想:對於有序陣列,
將陣列為兩份取中間值,如果等於返回。
如果小於繼續在左區間尋找,重複步驟1.
如果大於在右區間找,重複步驟1.
執行上述步驟,直到left指向的下標大於right指向的下標(說明遍歷完了了還沒有找到)。
在來說說快速排序:
選擇乙個基準值將比他小的值移到左邊,比他大的值移到右邊。
左邊區域右邊區域重複步驟4,直到每個分割槽只有乙個數。
可以說快速排序是一種分治的思想,然後我們如果只看分割槽過後的話,可以發現它和二分有些神似,特別是在編寫**的過程中我們可以發現他們的相似之處。
二分的**:
public
boolean
binaryserach
(int
args,
int left,
int right,
int target)
if(args[mid]
== target)
else
if(target > args[mid]
)else
if(target < args[mid]
)return
false
;}
快速排序
public
int[
]sort
(int arr,
int left,
int right)
return arr;
}public
intpattation
(int arr,
int left,
int right)
}swap
(arr,pivot,index-1)
;return index-1;
}//交換元素
public
void
swap
(int arr,
int i,
int j)
可以看出兩份**都是左右進行分割槽操作,區別就是快速排序多了乙個分割槽操作,獲得乙個中點。 原來如此簡單
你對我說美麗的女孩子是種危險的動物,她們詭譎善變,揚起貓一樣的觸鬚來挑動你身上的每一處情感神經。不過我想不管是哪種型別的女孩子,在她的心中的某個角落一定藏著乙份對於純美愛情的嚮往,只是表現出來的樣子不同罷了!喜歡彈鋼琴只彈黑鍵,喜歡把熱牛奶放在左邊,喜歡對著毛絨娃娃傾訴我對你的想念。想讓你知道我就是...
理解ERP原來如此簡單
家 中 請 客 訂貨意向 妻子 當然可以,來幾個人,幾點來,想吃什麼菜?丈夫 6個人,我們7點左右回來,準備些酒 烤鴨 番茄炒蛋 冷盤 蛋花湯。你 看可以嗎?商務溝通 妻子 沒問題,我會準備好的,訂單確認 妻子記錄下需要做的選單 mps計畫 具體要準備的菜 鴨 酒 番茄 雞蛋 作 油。bom物料清單...
冒泡的排序,原來如此
由於原來對c語言,學的不好,很多都不懂,所以在資料結構上的學習也是吃了一些虧,所以現在在抓緊時間溫習原來的知識,無意看到了演算法中的氣泡排序。原來一直不敢去面對寫 這件事,但為了工作,加油 廢話少說,直接上 vs2013上寫的c語言,氣泡排序!參考了啊哈,演算法一書的 define crt secu...