泡沫排序核心思維:每次比較兩個相鄰元素, 順序錯誤就交換
若有n個數字進行排序, 進行排序從第一個元素進行相鄰數字比較,
所以只需進行n - 1次操作即可完成,
程式碼如下:
#include <stdio.h>
int main(int argc, const char * argv[]) {
//n控制輸入元素之次數, tmp為暫存變數
int bubbleSortArray[100], n, tmp;
scanf("%d", &n);
for(int i = 0; i < n ; i++)
scanf("%d", &bubbleSortArray[i]);
for (int i = 0; i < n - 1; i++) //n個數排序, 只需n-1次
{
for (int j = 0; j <= n - 1; j++) //從陣列第一個元素比較到n-1個
{
if (bubbleSortArray[j] > bubbleSortArray[j + 1])
{
//大小互換
tmp = bubbleSortArray[j];
bubbleSortArray[j] = bubbleSortArray[j + 1];
bubbleSortArray[j + 1] = tmp;
}
}
}
//輸出結果
for(int i = 1; i < n ; i++)
printf("%d ", bubbleSortArray[i]);
return 0;
}
文章標籤
全站熱搜
留言列表