冒泡排序:
基本思想:通过两两比较,如果低位比高位大,则进行交换,每次排序,我们都可以发现有一个最大的排号,感觉就是倒着排序,从右向做左看,依此慢慢 排序好。故可以倒着看。
具体实现代码如下:
#include<iostream>
using namespace std;
//冒泡排序
void SelectSort(int a[], int n)
{
int i, j, temp;
for (i=0;i<n-1;i++) #其实这个i<n还是小于n-1;运行结果不变。
for (j=0;j<n-1-i;j++) #执行(n-1)次 冒泡的次数 决定冒泡的位置,这个n必须减低1。因为a[0]和a[1]比较,a[2]和a[3]比较,一直到a[n-1]和a[n]比较,故j只能最大取n-1;
if (a[j] > a[j + 1])
{
temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
}
int main()
{
int a[10], i, n = 10, num = 10;
for (i = 0; i < n; i++)
a[i] = num--;
cout << "原序列:\n";
for (i = 0; i < n; i++)
cout << a[i] << " ";
SelectSort(a, n); cout << "排序后:\n"; for (i = 0; i < n; i++)cout << a[i] << " ";
return 0;
}