插入排序法:就是将一个数据插入到已经排好顺序的数据中,从而得到一个新的数据。
代码如下:
#include <iostream>
#include <time.h>
using namespace std;
void srandData(int *, int);//产生随机数的函数
void insertSort(int *, int);//插入排序具体实现函数
void swap(int *, int *);//两个数字实现交换的函数
void display(int *, int);//在屏幕输出结果函数
int main()
{
const int N = 10;//定义常数
int arr[N];//定义数组
srandData(arr, N);
insertSort(arr, N);
display(arr, N);
return 0;
}
void srandData(int *a, int n)
{
srand(time(NULL));
for (int i = 0; i < n; i++)
{
a[i] = rand() % 50;//取50以下的数字
cout << a[i] << " ";
}
cout << endl;
}
void swap(int *b, int *c)
{
int temp = *c;
*c = *b;
*b = temp;
}
void insertSort(int *e, int n)
{
for (int i = 1; i < n; i++)
{
for (int j = i ; j > 0; j--)
{
if (e[j] > e[j - 1])
{
swap(&e[j], &e[j-1]);
}
else
{
break;
}
}
}
}
void display(int *d, int n)
{
for (int i = 0; i < n; i++)
{
cout << d[i] << " ";
}
cout << endl;
}