partition函式是快速排序的基礎,在看劍指offer裡的partition**時,有些卡,這裡註解一下。
int partition(int data, int length, int start, int end)
}//<=small的元素都比基準元素小了,那麼我們的再將small+1,然後在將基準元素調過來。
++ small;
//基準元素調到small+1的位置
swap(&data[small], &data[end]);
//返回基準元素下標
return small;
}
假如資料為 data=「1,6,4,2,5"; start=0, end =4, 隨機的index為2,那麼執行過程為
index01
234(跳出)
small00
012data
1,6,5,2,4
1,6,5,2,4
1,6,5,2,4
1,2,5,6,4(交換6和2)
1,2,4,6,5(交換5和4)
劍指offer(更新中)
在乙個二維陣列中 每個一維陣列的長度相同 每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。coding utf 8 class solution array 二維列表 def find self,ta...
劍指offer全套解答 劍指offer 1 5
1.二維陣列中的查詢 在乙個二維陣列中 每個一維陣列的長度相同 每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。public class solution int n array 0 length i...
劍指offer全套解答 劍指offer 36 45
36.兩個鍊錶的第乙個公共節點 輸入兩個鍊錶,找出它們的第乙個公共結點。注意因為傳入資料是鍊錶,所以錯誤測試資料的提示是用其他方式顯示的,保證傳入資料是正確的 public class solution return p 37.數字在排序陣列 現的次數 統計乙個數字在公升序陣列 現的次數。publi...