您的位置:首页 > 其它

改进的冒泡算法

2016-04-15 09:42 134 查看
在百度百科中的代码:

void bubble_sort(int a[], int n)
{
int i, j, temp;
for (j = 0; j < n - 1; j++)
for (i = 0; i < n - 1 - j; i++)
{
if(a[i] > a[i + 1])
{
temp = a[i];
a[i] = a[i + 1];
a[i + 1] = temp;
}
}
}


View Code

改进后:

void bubble_sort(int a[], int n)
{
int i, j, temp;

for (i = 0; i < n; i++) {
for (j = 1; j < n - i; j++) {
if (a[i] > a[i + j] ) {
temp = a[i];
a[i] = a[i + j];
a[i + j] = temp;
}
}
printf("a[%d] = %d\n", i, a[i]);
}
}


前数: a[i]

后数: a[i + j]

外循环: 前数

从下标0开始;

内循环: 后数

从下标1开始;

交换(数据)代码:

(1) 把前数赋值给临时变量(temp);

(2) 把后数赋值给前数;

(3) 把临时变量赋值给后数
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: