冒泡排序的基本思想是依次比较相邻的两个数,将小数放在前面,大数放在后面。至第一次比较结束,则最大的数在数组最后。
第二趟时,仍从第一对数开始比较,将小数放前,大数放后,一直比较到倒数第二个数,第二趟结束,次大的数放在了数组次后的位置
重复下去,直到不再进行冒泡排序,即数组已为有序数组
冒泡法并不是每趟比较最小的浮上来,而是最大的沉下去
C语言实现
void BubbleSort(int a[], int n) {
int i,j;
int flag;
for(i=0; i<n-1; i++) {
flag = 0;
for(j=0; j<n-i; j++) {
if(a[j] > a[j+1]) {
int temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
flag = 1;
}
}
if(!flag) {
break;
}
}
}
第二趟时,仍从第一对数开始比较,将小数放前,大数放后,一直比较到倒数第二个数,第二趟结束,次大的数放在了数组次后的位置
重复下去,直到不再进行冒泡排序,即数组已为有序数组
冒泡法并不是每趟比较最小的浮上来,而是最大的沉下去
C语言实现
void BubbleSort(int a[], int n) {
int i,j;
int flag;
for(i=0; i<n-1; i++) {
flag = 0;
for(j=0; j<n-i; j++) {
if(a[j] > a[j+1]) {
int temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
flag = 1;
}
}
if(!flag) {
break;
}
}
}