起泡排序【模板】
这个起泡排序的 for 循环比较奇怪,注意。。。邓老师写的还是为了开发我们的思维。。。
另外就是 swap 函数在 using namespace std; 中有现成的函数。。。
#include <iostream>
using namespace std;
void bubblesort(int A[],int n)
{
for(bool sorted=false;sorted=!sorted;n--)
for(int i=1;i<n;i++) //自左向右,检查 A[0,n) 的相邻元素
if(A[i-1]>A[i]) //逆序
{
swap(A[i-1],A[i]);
sorted=false;
}
}
int main()
{
int i;
int V[10]={11, 23, 19, 7, 17, 5, 3, 13, 2, 29};
printf("排序前:");
for(i=0;i<10;i++)
printf("%d ",V[i]);
printf("\n");
//起泡排序
bubblesort(V,10);
printf("排序后:");
for(i=0;i<10;i++)
printf("%d ",V[i]);
printf("\n");
return 0;
}
运行结果为:
排序前:11 23 19 7 17 5 3 13 2 29
排序后:2 3 5 7 11 13 17 19 23 29
最后更新:2017-04-03 14:54:08