秒懂演算法1 氣泡排序,及一種小改進(C 實現)

2022-03-06 04:42:30 字數 693 閱讀 3865

演算法思路:

重複走訪每兩個相鄰元素,比較大小交換位置,直至排序完成。

性質:

氣泡排序是一種原地排序(只有常數個元素存到陣列以外的空間),最壞的時間複雜度,和平均時間複雜度都是

n2。冒泡法是穩定的

。。*注:

氣泡排序是演算法入門級別,是面試筆試時候的禁術,古往今來死在冒泡法上的應屆生真可謂前仆後繼...

**:

int bubblesort1(int

a) }}

return

a; }

改進:

因為冒泡法會機械而重複的完成所有比較,比如對{10,1,2,3,4,5,6}這個陣列的排序,實際上第一輪過後,就已經排好了,但程式還是把沒有意義的比較進行到底。。。

於是可以加乙個開關變數,在某一輪沒有發生交換的情況下,結束排序,如下:

int bubblesort2(int

a)

}if (isover) break; //

沒有發生交換則結束

}

return

a; }

秒懂的shell程式設計陣列與冒泡演算法排序詳解

四 冒泡演算法排序 方法1 陣列名 value0 value1 value2 方法2 陣列名 0 value 1 value 2 value 方法3 列表名 value0 value1 value2 陣列名 列表名 方法4 陣列名 0 value 陣列名 1 value 陣列名 2 value 獲取...

排序演算法(一)氣泡排序演算法1

1 氣泡排序的概念網上一大堆,這裡也就不複製了。下面主要是我的一些理解,算是在此做個筆記吧!2 冒泡 是乙個很形象的比喻,下面先看一段簡單的 intnnum intncount sizeof nnum sizeof nnum 0 intnmax nnum 0 for inti 1 i 這段 很簡單,...

一種快速排序演算法

using system class program for int l 0 l src.length l src count temp l i 3 0xff temp l static void main string args watch.stop console.writeline quick...