三種簡單的排序演算法

2021-08-19 06:08:50 字數 1541 閱讀 8254

基本思想:它重複地走訪過要排序的元素,依次比較相鄰兩個元素,如果他們的順序錯誤就把他們調換過來,直到沒有元素再需要交換,排序完成。過程如下:

比較相鄰的元素,如果前乙個比後乙個大,就把它們兩個調換位置。

對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。這步做完後,最後的元素會是最大的數。

針對所有的元素重複以上的步驟,除了最後乙個。

持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較。

氣泡排序的**如下:

基本思想:在要排序的一組數中,假定前n-1個數已經排好序,現在將第n個數插到前面的有序數列中,使得這n個數也是排好順序的。如此反覆迴圈,直到全部排好順序。過程如下:

例如:45 80 48 40 22 78

第一輪:45 80 48 40 22 78 ---> 45 80 48 40 22 78 i=1

第二輪:45 80 48 40 22 78 ---> 45 48 80 40 22 78 i=2

第三輪:45 48 80 40 22 78 ---> 40 45 48 80 22 78 i=3

第四輪:40 45 48 80 22 78 ---> 22 40 45 48 80 78 i=4

第五輪:22 40 45 48 80 78 ---> 22 40 45 48 78 80 i=5

基本思想:用待插元素的值與當前查詢序列的中間元素的值進行比較,以當前查詢序列的中間元素為分界,確定待插元素是在當前查詢序列的左邊還是右邊,如果是在其左邊,則以該左邊序列為當前查詢序列,右邊也類似。按照上述方法,遞迴地處理新序列,直到當前查詢序列的長度小於1時查詢過程結束。過程如下:

原陣列:21、8、2、18、0、9、27、12、5、24、

第0次迴圈排序結果: 8、21、2、18、0、9、27、12、5、24、

第1次迴圈排序結果: 2、8、21、18、0、9、27、12、5、24、

第2次迴圈排序結果: 2、8、18、21、0、9、27、12、5、24、

第3次迴圈排序結果: 0、2、8、18、21、9、27、12、5、24、

第4次迴圈排序結果: 0、2、8、9、18、21、27、12、5、24、

第5次迴圈排序結果: 0、2、8、9、18、21、27、12、5、24、

第6次迴圈排序結果: 0、2、8、9、12、18、21、27、5、24、

第7次迴圈排序結果: 0、2、5、8、9、12、18、21、27、24、

第8次迴圈排序結果: 0、2、5、8、9、12、18、21、24、27、

三種簡單排序演算法

一 氣泡排序 外層迴圈out,從n 1逐漸減小,內層迴圈in,從0逐漸增加到out,進行比較swap。package com.xwiam.algorithms.sort public class bubblesort public void insert long value public int ...

演算法 三種簡單排序演算法

排序演算法比較常見的有 氣泡排序 簡單選擇排序 直接插入排序 希爾排序 堆排序 歸併排序和快速排序演算法等。今天先學習一下前面三種比較簡單的演算法。排序的穩定性 兩個或多個元素相等,排序過後仍然是原來的順序則為穩定排序。內部排序 排序過程都在記憶體中進行 外部排序 需要對外存進行訪問的排序過程。內排...

三種排序演算法

1.氣泡排序法 2.選擇排序法 3.插入排序法 由小到大的順序 備註 網上筆試題,是參考網上別人的,具體出處找不到了,請諒解。摘抄記錄下來方便日後學習。如果有問題盡請批評指正,希望可以和大神一起交流。氣泡排序的最好的時間複雜度為o n 最壞的時間為 o n 2 演算法的平均時間複雜度為o n 2 選...