三種最常見的排序

2021-08-25 10:30:56 字數 1397 閱讀 1618

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

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

//口訣:

//冒泡: 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(); } }

三種常見的排序演算法

剛開始的時候也聽過學長說什麼什麼排序之類的,到剛聽得時候是各種姿勢懵逼啊,學習了一段時間的c語言之後,才有點明白所謂的排序是什麼,現在就來羅列一下三種常用的排序法氣泡排序法,插入排序法和選擇排序法。氣泡排序啊,這是我聽過最多的乙個排序方法了,他的基本思想也比較簡單,就是不斷比較相鄰的兩個數,讓較小的...

常見的三種排序演算法

常見的三種排序演算法 氣泡排序,選擇排序,插入排序 氣泡排序 穩定 重複地走訪過要排序的元素列,依次比較兩個相鄰的元素,如果順序錯誤就把他們交換過來。走訪元素的工作是重複地進行直到沒有相鄰元素需要交換,也就是說該元素列已經排序完成。兩兩比較 intmain for i 0 i1 i 決定裡面的迴圈迴...

排序 常見三種 C 實現

簡單總結下堆排序的基本思路 a.將無序序列構建成乙個堆,根據公升序降序需求選擇大頂堆或小頂堆 b.將堆頂元素與末尾元素交換,將最大元素 沉 到陣列末端 c.重新調整結構,使其滿足堆定義,然後繼續交換堆頂元素與當前末尾元素,反覆執行調整 交換步驟,直到整個序列有序。其中建堆的時間複雜度為o n 而排序...