資料結構與演算法 3

2021-10-09 19:24:44 字數 607 閱讀 7905

非遞迴:o(n * logn)

示例** mergesort

求陣列最小和問題(求陣列中 每個數左側所有比它小的數的和 的和)

求降序對問題(陣列中每個數與其右側比它小的數組成的二元組):上題反過來即可

partition過程:

給定乙個陣列arr,和乙個整數num,請把小於num的數放在陣列的左邊,大於num的數放在陣列的右邊,要求額外空間複雜度o(1),時間複雜度o(n)三色問題/荷蘭國旗問題—>快排v2.0(快排v1.0即partition函式只返回乙個基準值位置,而v2.0返回了一組基準值的左右邊界,時間複雜度都為o(n))

快排 v3.0,隨機快排,在v2.0基礎上使用隨機基準值,時間複雜度為o(n*logn)

資料結構與演算法 排序演算法(3)

1 原理 將要排序的資料分到幾個有序的桶裡,每個桶裡的資料再進行排序。桶內的資料排序完畢之後,再把桶裡的資料依次取出,組成的序列就是有序的了。2 原地排序?屬於原地排序演算法。主要看桶內排序是否時原地排序演算法,若選擇插入排序,則桶排序就是屬於原地排序,若選擇了快速排序,則不屬於原地排序。3 穩定性...

python演算法與資料結構 資料結構介紹 38

資料結構,直白地理解,就是研究資料的儲存方式。我們知道,資料儲存只有乙個目的,即為了方便後期對資料的再利用,就如同我們使用陣列儲存是為了後期取得它們的值,因此,資料在計算機儲存空間的存放,決不是胡亂的,這就要求我們選擇一種好的方式來儲存資料,而這也是資料結構的核心內容例如,要儲存這樣一組資料 資料之...

資料結構與演算法作業3

給定乙個陣列nums和乙個值val,你需要原地移除所有數值等於val 的元素,返回移除後陣列的新長度。不要使用額外的陣列空間,你必須在原地修改輸入陣列並在使用o 1 額外空間的條件下完成。首先,通過讀題可以知道 已知 乙個陣列nums,乙個值val。目標 將數值等於val的元素移除並返回新陣列的長度...