數據結構常用算法排序算法
寫在前面
排序本質上就是按照某種順序將壹組數排好,分多次重復進行,每次只負責把壹個數字放到合適的位置上
兩種思路:
①先確定壹個數字,然後根據數據找合適的位置;
②先確定壹個位置,根據位置找合適的數字;
冒泡排序算法
先確定位置,選最前面或者最後面,假設選擇了最後面的位置,就是重復的把最大的數放到最後面代碼實現
選擇排序算法
只能選擇最前面最後面的位置,那選擇的位置向前或者向後依次與每壹個數做順序調整代碼實現
插入排序算法
先確定數字,假設前面的數已經排序好,把它們和相鄰的後面的那個數字作為選定數字,把選定數字向前插入到合適的位置:
快速排序算法
在數組中從頭部或尾部選擇壹個數,然後進行排序,比如比它小的在左,比它大的在右,這個數就是樞軸,每次與樞軸進行比較進行順序調整後的數,我們認為他們的相對位置已經固定,那麽這個數就排出在外,不再處理。
排好左右,左右兩邊分成兩部分,在各自選定壹個數再次進行這樣的排序,註意只能從數組的兩頭選數,以此類推。這可以用遞歸函數來實現: