您的位置:首页 > 其它

冒泡排序小结

2015-09-19 22:24 183 查看
冒泡排序,原理想起来并不难,核心便是四五行代码,若是用python,更是简约。然而,在自己写起来,仍然并不顺手,总是会纠结于下标的游动。

今天便是如此,这不是我第一次写冒泡算法了,之前用python写过一次,代码如下:

dist=len(list)
for j in range(0,dist):
for i in range(0,dist-1):
if list[i]>list[i+1]:
t=list[i]
list[i]=list[i+1]
list[i+1]=t
return list

外层循环控制着内层循环的次数。也即为我们常说的那个趟数。
内层只需要相邻比较即可,且注意不要越界,内层用最后一个是为dist-2,因为下面代码会比较dist-1,这个常常在实际写作中犯错。
以下用C代码实现的:
```#include<stdio.h>
int main() {
int a[100];
int n;
while (scanf("%d", &n) != EOF) {
for (int i = 0; i < n; i++) {
scanf("%d", &a[i]);
}
//bubble sort
//n-1 times
for (int i = 0; i < n-1; i++) {
for (int j = 0; j < n - i - 1 ; j++) {
if (a[j] > a[j+1]) {
int t = a[j];
a[j] = a[j+1];
a[j+1] = t;
}
}
}
for (int k = 0; k < n; k++) {
printf("%d ", a[k]);
}
//printf("\n");
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: