简单排序之冒泡排序(Bubble Sort)
1.原理
它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。
假设有N个元素,从第一个开始,根据判断条件,一个一个比较大小,将最值放在另外一侧,只需比较N-1次。
然后再从第一个元素开始,这时另外一侧第一个元素已经排序成功,所以比较次数减1。
如此重复,用两个循环嵌套,实现排序。
由于排序时元素伟一个一个出现,如同冒泡一般,称为冒泡排序。
2.代码
#include<stdio.h>
void Bubblesort (int num[],int rows) {
int i = 0,m = 0,j = rows;
int t = 0;
for (i = 0; i < rows - 1; i++) {
for (m = 0; m < j - 1; m++) {
if (num[m] < num[m + 1]) {
t = num[m];
num[m] = num[m + 1];
num[m + 1] = t;
}
}
}
}
int main () {
int rows = 0;
int num[100] = {0};
scanf("%d",&rows);
for (int i = 0; i < rows; i++) {
scanf("%d",&num[i]);
}
Bubblesort(num,rows);
for (int i = 0; i < rows; i++) {
printf("%d",num[i]);
if (i != rows - 1) {
printf(" ");
}
}
printf("\n");
}
3.说明
如果有错误,希望指正。
enjoy coding……