選擇排序和氣泡排序

2021-08-03 17:16:45 字數 1632 閱讀 5725

今天開始寫部落格,加油。

1氣泡排序

我沒有選擇使用函式,而是分成了乙個個程式去寫,一是因為函式我自己本來也不熟練,二是感覺分開來寫更加的清晰

1,氣泡排序1 /*

*2023年7月11日17:28:13

*目的:氣泡排序1  (以增序為列)

*思路:**這種氣泡排序核心思想等同於選擇排序,但並不會提取最值,

比較次數等同於選擇排序法,但明顯劣與選擇排序,因為資料交換量比選擇排序多的多。

1)建立乙個陣列,提取第乙個值arr[0],依次與後面的變數進行比較

若arr[0]>arr[n],則交換arr[0]與arr[n]。

2)重複比較直到a[n-1]結束。

* */

#include

int main()

;int i,j,temp;

for(i=0;i<9;i++)   //外部迴圈,迴圈n-1次,每迴圈一次,排序第n個數}}

for(i=0;i<=9;i++)

printf(i!=9?"%-5d":"%d\n",a[i]);   //三目運算子

return 0;}

2氣泡排序2 /*

* 2023年7月11日17:59:24

* 目的:氣泡排序2/沉底排序  (以自增為列)

* 思路:**這種排序方法與第一種氣泡排序方法相比,思路不同。

*       但是比較次數和資料轉換次數都是相同的,所以也稱為頂外一種氣泡排序法

* 1)建立乙個陣列,依次比較第a[j]和a[j+1]的值(初始j為0),若a[j]確保一次迴圈後,陣列的最後乙個值是這個陣列的最大值。

* 2)排除陣列對最後乙個數的考慮。

* 3)迴圈1),直到待考慮的陣列個數為1時。

* */

#include

int main()

;int i,j,temp;

for(i=0;i<9;i++)    //  外部迴圈,每迴圈一次,陣列排序好最後乙個考慮範圍內的數。}}

for (i=0;i<=9;i++)

printf(i!=9?"%-5d":"%d\n",a[i]);

return 0;

}2選擇排序 /*

* 2023年7月11日15:53:58

* 目的:選擇排序的學習   (以增序為列)

* 思路;1)建立乙個陣列,選擇乙個標桿為a[min],迴圈比較其餘aar[n],若arr[min]>=arr[j],則交換。

*迴圈結束,查詢到了最小值,並寄存在arr[0]的變數中。

* 2)把arr[1]的值放到標桿a[min]中,迴圈比較arr[1]後的值,查詢到其餘arr[1]到arr][n]中的

* 最小值,並寄存在arr[民]的變數中。

* 3)重複2)直到陣列arr[n-1]結束。

* */

#include

int main()

;int i,j,min,temp;

for(i=0;i<9;i++)    //外部迴圈,迴圈n-1次,每迴圈n次,排序第n個數

if (i != min)     //最小值與待排序數進行比較

}for (i=0;i<=9;i++)

return 0;

}

排序 氣泡排序和選擇排序

目錄 氣泡排序 氣泡排序原理圖 demo 執行 選擇排序 氣泡排序原理圖 demo 執行 說明 include include using namespace std name 氣泡排序法 number 傳入陣列 length 陣列長度 setw 需要匯入 include ps 這是乙個lib.h的...

選擇排序和氣泡排序

選擇排序和氣泡排序 演算法 蠻力法選擇排序,第一次掃瞄整個陣列,找到最小元素,然後和第乙個元素交換。第二次從第二個元素開始掃瞄陣列,找到剩下的元素中最小的與第二個元素交換位置,直到最後。89 45 68 90 29 3417 17 45 68 902934 89 17 29 68 90 453489...

選擇排序和氣泡排序

選擇 從小到大排序 int a 5 a 0 a 1 a 2 a 3 a 4 5 4 3 2 1 1 5 4 3 2 第一輪比較 拿a 0 和後面的元素依次比較 如果a 0 a i 那麼兩個數交換 1 2 5 4 3 第二輪比較,拿a 1 和後面的元素依次比較,如果a 1 a i 那麼兩個數交換 1 ...