必須掌握的排序

2021-07-04 16:40:22 字數 1504 閱讀 4222

大神總結的很好。學而時習之,善於總結。

//非常恨那些把演算法排序之類的搞得異常麻煩的人, 盡可能簡單一點,  簡單了, 容易理解了, 才好記, 上了戰場, 才用得著.

//人家的不好用, 只好自己總結, 重寫原理與過程.^_^

//口訣:

//冒泡: n-1, n-i-1, 比的是j與j+1

//插入: n-1, i+1, 比的是i+1與j

//選擇: n, n, 開始變成i+1, 比的卻是i與j

package com.yenange.sort; 

/** 

* 三種最常見的排序 

*/ public class sortnumber ;        //原陣列 

printarr(arr);                    //輸出 

bubblesort(arr); 

insertsort(arr); 

selectsort(arr); 

printarr(arr); 

}/** 

* 1.氣泡排序 

* @param arr 

* 原理:從底層的元素開始, 用它和它緊挨著的元素相比較, 如果下面的元素(下標較小的)大於上面的元素, 

*     就交換它們,否則保持原樣.然後轉到上一層的元素, 重複上面的過程, 最後, 最大的元素位於下標最大處 

*     這時呢, 重複上面的冒泡過程, 因為最大的已經出來了(不需要比最後那乙個了), 所以這一次的迴圈就應 

*     該比上次要少一次.c#p327 

*     *** 

*     ** 

*     * 

*/ private static void bubblesort (int arr)  

} } 

} /** 

* 2.插入排序 

* @param arr 

* 原理:抽出牌, 在前面的牌中尋找相應的位置插入, 然後下一張. 一組數字中的每個元素在經過檢查後, 

*     放入已排序的元素列表中的適當位置. 當最後乙個數字放入合適位置時, 該組資料排序完畢. 

*     那它與冒泡有什麼區別呢? 

*     冒泡的比較過程中, 兩個相鄰元素比較,依次往上走. 內迴圈中,參與比較沒有固定的元素. 

*     插入則是抽出本次迴圈中的最後乙個元素, 與它前面的元素相比較, 比較的過程中, 有乙個元素是固定的 

*     冒泡比較是越比較越少, 插入排序是越比較越多. 

*     * 

*     ** 

*     *** 

*/ private static void insertsort(int arr)  

} } 

} /** 

* 列印陣列內容 

* @param arr 

*/ private static void printarr(int arr)  

system.out.println(); } }

程式設計師必須掌握的排序演算法

氣泡排序 bubble sort 是一種較簡單的排序演算法。它重複地走訪過要排序的元素列,依次比較兩個相鄰的元素,如果他們的順序 如從大到小 首字母從a到z 錯誤就把他們交換過來。走訪元素的工作是重複地進行直到沒有相鄰元素需要交換,也就是說該元素列已經排序完成。這個演算法的名字由來是因為越大的元素會...

必須掌握的八種排序(1 2) 插入排序,希爾排序

演算法專欄 很多人演算法和資料結構不好,歸根結底就是基礎不紮實,演算法和資料結構不好的話,達到的高度肯定不會很高,最近重新加強了一下自己的演算法基礎,決定從最基礎的內容開始,如有不足的地方,歡迎指正。排序方法可以分為五種 插入排序 選擇排序 交換排序 分配排序和歸併排序。在排序過程中,全部記錄存放在...

必須掌握的八種排序(1 2) 插入排序,希爾排序

很多人演算法和資料結構不好,歸根結底就是基礎不紮實,演算法和資料結構不好的話,達到的高度肯定不會很高,最近重新加強了一下自己的演算法基礎,決定從最基礎的內容開始,如有不足的地方,歡迎指正。排序方法可以分為五種 插入排序 選擇排序 交換排序 分配排序和歸併排序。在排序過程中,全部記錄存放在記憶體,則稱...