冒泡排序:
将序列中的第1个元素与第2个元素进行比较,若前者大于后者,则将第1个元素与第2个元素进行位置交换,否则不交换。
再将第2个元素与第3个元素进行比较,同样若前者大于后者,这将第2个元素与第3个元素进行交换,否则不交换。
一尺类推,直到将第n-1个元素与第n个元素进行比较为止。
因此可以发现,只需要交换n-1次就可。
用冒泡排序,从小到大排序
#include<stdio.h>
#include<iostream>
using namespace std;
void bubblesort(int k[], int n) //n为数组k中的元素个数-1
{
int i, j, temp, flag=1;
for (i = 0; i < n && flag==1; i++)
{
flag = 0;
for (j = 0; j < n - i; j++)
{
if (k[j] > k[j + 1])
{
temp = k[j+1];
k[j + 1] = k[j];
k[j] = temp;
flag = 1;
}
}
}
}
int main()
{
int i, a[10] = { 2,5,6,3,7,8,0,9,12,1 };
cout << "the orginal data array is" << endl;
for (i = 0; i < 10; i++)
cout << a[i] << " ";
cout << endl;
bubblesort(a, 9);
cout << "the result data array is" << endl;
for (i = 0; i < 10; i++)
cout << a[i] << " ";
cout << endl;
return 0;
}