一、冒泡排序法
1、基本思想:两两比较相邻记录的关键字,如果反序则交换,直到没有反序的记录为止。
2、相应的代码实例如下:
#include <iostream>
#include <stdlib.h>
#include <time.h>
using namespace std;
#define ARR_MAX 10 // 假设有10个数
void bubble_sort(int a[],int n)
{
// 冒泡法排序(升序)
int j,i,temp;
bool flag=true;
for (i=0;i<n && flag;i++)
{
flag=false;
for (j=n-1;j>=i;j--)
{
if(a[j]>a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
flag=true;
}
}
}
}
int main()
{
srand((unsigned)time(NULL)); // 将当前时间设置成随机函数的种子,所以每次产生的数都不一样
int t[ARR_MAX];
int i;
cout<<"排序前:";
for (i=0;i<ARR_MAX;i++)
{
t[i]=rand()%1000+1; // 随机数为1~1000
cout<<t[i]<<" ";
}
cout<<endl;
cout<<"排序后:";
bubble_sort(t,ARR_MAX); // 调用冒泡排序函数
for (i=0;i<ARR_MAX;i++)
{
cout<<t[i]<<" ";
}
cout<<endl;
return 0;
}