在要排序的一組數中,對當前還未排好序的範圍內的全部數,自上而下對相鄰的兩個數依次進行比較和調整,讓較大的數往下沉,較小的往上冒。即:每當兩相鄰的數比較後發現它們的排序與排序要求相反時,就將它們互換。
#include
#include
//常規氣泡排序
void bubblesort(int r,int n) }}
} //改進後的氣泡排序,新增乙個flag
void bubble_1(int r,int n) }}
}//改進後的氣泡排序,雙向查詢
void bubble_2(int r,int n)
}high--; //修改high前移一位
for(i=high;i>low;i--)
} low++; //修改low後移一位
}}//列印
void print(int r,int n)
printf("\n");
}int main(),r1[10],r2[10];
int i;
for(i=0;i<10;i++)
printf("r排序前:\n");
print(r,10);
printf("常規氣泡排序:\n");
bubblesort(r,10);//常規冒泡
print(r,10);
printf("\nr1排序前:\n");
print(r1,10);
printf("新增了flag的氣泡排序:\n");
bubble_1(r1,10);//新增flag
print(r1,10);
printf("\nr2排序前:\n");
print(r2,10);
printf("雙向查詢的氣泡排序:\n");
bubble_2(r2,10); //雙向查詢
八大排序演算法 氣泡排序
氣泡排序是c語言中演算法的簡單實現 什麼是冒泡 他重複的走訪要排序的序列,一次比較倆個元素,如果順序錯誤就交換,知道沒有必要在交換就完成排序。例子 原序列 5 3 9 6 8 2 7 第一趟 3 5 6 8 2 7 9 第二趟 3 5 6 2 7 8 9 第三趟 3 5 2 6 7 8 9 第四趟 ...
八大排序 氣泡排序
原理 每次比較兩個數值,然後將數值大的交換到右邊。本人理解 迴圈陣列長度的次數,每次迴圈,都會將當前剩下的,還未排好序的數值中最大的值,放到當前未排好序的數值的最右邊,即下標為 陣列的長度 當前迴圈的次數 當前迴圈的次數 i 1 下標是由0開始,所以下標值要加1才等於迴圈次數 注釋 減當前迴圈的次數...
八大排序演算法之氣泡排序
比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。針對所有的元素重複以上的步驟,除了最後乙個。持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較。def bubble sort l...