插入排序的基本思想是每步將一個待排序的記錄按其排序碼值的大小,插到前面已經排好的文件中的適當位置,直到全部插入完爲止。插入排序方法主要有直接插入排序和希爾排序。
直接插入排序具體算法描述如下:
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;
}