關於刷題入門(冒泡 選擇排序)總結

2021-08-22 11:26:00 字數 1147 閱讀 9692

氣泡排序:顧名思義就是 小的數往上面冒,大的數往下沉(公升序)。當然也可以反過來進行(降序)。

氣泡排序是常用的一種排序方法,其基本方法就是逐次比較。即一次比較兩個數,若它們的順序錯誤,則它們交換;重複進行,直到沒有需要交換為止。

以公升序為例:

1、比較相鄰數字的大小,若第乙個數比第二個數大,則相互交換;

2、對每一對相鄰的數作相同的工作,那麼最後的數應該是最大的數;

3、針對所有數(除了最後乙個)重複上述步驟,直到沒有任何一對數字需要比較為止。

需要注意的是,第3條中所謂的「最後乙個」是指前幾步中已經處理過的最大的數,而不是整個數列的最後乙個數

例如,將下列數列用氣泡排序法從小到大重新排列;

48 37 64 96 75 12 26 48

每次排序後數列的變化如下:

第一次排序:37 48 64 75 12 26 48 96   第一次排序之後 最大的已經到了最後面(最下面)

第二次排序:37 48 64 12 26 48 75 96  第二次排序之後,第二大的到了倒數第二個位置 (往下也是這樣)

第三次排序:37 48 12 26 48 64 75 96 ……

第四次排序:37 12 26 48 48 64 75 96 ……

經過一系列過程,最終數列次序為:12 26 37 48 48 64 75 96.

氣泡排序原理弄清之後,接下來就是**實現了:

//氣泡排序

//設陣列a 有n個元素

int t;

for(i=0;ia[j+1])//後一位數比前一位數小的話,就交換兩個數的位置(公升序)

}}

選擇法排序是相對好理解的排序演算法。假設要對含有n個數的序列進行公升序排列,演算法步驟是:

1、從陣列存放的n個數中找出最小數的下標(演算法見下面的「求最值」),然後將最小數與第1個數交換位置;

2、除第1個數以外,再從其餘n-1個數中找出最小數(即n個數中的次小數)的下標,將此數與第2個數交換位置;

3、重複步驟1  n-1趟,即可完成所求。

//選擇排序

//設陣列a 為待排序陣列

int k,i,j;

for(i=0;i本文詳細舉例講了氣泡排序,在刷題前期中 會氣泡排序了,基本上就很少用到選擇排序,所以對於選擇排序沒有詳細講解。 

關於刷題入門 簡單題操作 的總結

一 判斷乙個數的奇偶性 判斷奇偶性 只需要對2取模即可,模為1位奇數,反之為偶 int a if a 2 1 else 二 判斷閏年 1 能整除4且不能整除100 2 能整除400 二者成立乙個即可 int y if y 400 0 y 4 0 y 100 0 else 三 判斷三邊是否能夠構成乙個...

關於氣泡排序與選擇排序

一 氣泡排序 原理 依次比較相鄰的兩個值,如果後面的比前面的小,則將小的元素排 到前面。依照這個規則進行多次並且遞減的迭代,直到順序正確。let a 8,15,88,55,76,21,39,94 let t for let i 0 ia j 1 遍歷輸出 for let i 0 i二 選擇排序 原理...

選擇排序和氣泡排序總結

遞增排序乙個序列,從待排序元素中選出最小的元素,和起始位置的元素交換,然後從剩餘元素中繼續選最小元素,這是一種不穩定的方法,時間複雜度n 2。比較簡單的演算法 比選擇排序效能更加優一點的排序方法。第一輪迴圈 1 n 開始先比較第一第二個元素的大小,如果第二個小於第乙個,則交換,反之則保持不變。然後繼...