插入排序的基本思想是每步将一个待排序的记录按其排序码值的大小,插到前面已经排好的文件中的适当位置,直到全部插入完为止。插入排序方法主要有直接插入排序和希尔排序。
直接插入排序具体算法描述如下:
1. 从第一个元素开始,该元素可以认为已经被排序
2. 取出下一个元素,在已经排序的元素序列中从后向前扫描
3. 如果该元素(已排序)大于新元素,将该元素移到下一位置
4. 重复步骤3,直到找到已排序的元素小于或者等于新元素的位置
5. 将新元素插入到下一位置中
6. 重复步骤2
// 插入排序.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include<iostream>
#include<string>
#include<vector>
using namespace std;
int main()
{
int a[6]={6,2,4,1,5,9};
cout<<"before sort"<<endl;
for(int i=0;i<5;i++)
{
cout<<a[i]<<' ';
}
cout<<a[5]<<endl;
cout<<"after sort "<<endl;
for(int i=1;i<6;i++)
{
int j=i-1;
int temp=a[i];
while(j>=0&&a[j]>temp)
{
a[j+1]=a[j];
j--;
}
if(j!=i-1)
{
a[j+1]=temp;
}
}
for(int i=0;i<6;i++)
{
cout<<a[i]<<' ';
}
cout<<endl;
return 0;
}