插入排序:
是一种从序列左端开始依次对数据进行排序的算法。
在排序过程中,左侧的数据陆续归位,而右侧留下的就是还未被排序的数据。
插入排序的思路就是从右侧的未排序区域内取出一个数据,然后将它插入到已排序区域内合适的位置上
基本步骤:
- 从首个元素开始,该元素可以视作已经被排序好了的;
- 取出下一个元素,在已经被排序的元素序列中从后向前扫描;
- 如果该元素(已排序)大于新元素,将该元素移到下一位置;
- 重复步骤3,直到找到已排序的元素小于或者等于新元素的位置;
- 将新元素插入到该位置后;
- 重复步骤2~5。
#include<iostream>
using namespace std;
#define MAX 100
void insertsortion(int a[],int n);//插入排序函数
void input(int a[],int x);//输入需要排序的数
void show(int a[],int x);//打印排序之后的函数(从小到大)
int main()
{
cout<<"请输入你想排列多少个数:";
int x;
cin>>x;
int a[MAX];
input(a,x);
insertsortion(a,x);
show(a,x);
}
void insertsortion(int a[],int n)
{
int preindex,current;//需要比较的前一个数的下标和需要比较的数
for(int i=1;i<n;i++)
{
preindex = i-1;