插入排序思想
插入排序比较简单,就是将未排序的数据按照插入到已经排好序的序列中。重点在于找到插入的位置,从后面进行比较效率更高。
插入排序代码
#include <iostream>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;
void InsertSort(int num[],int len){
for(int i=1;i<len;i++){//第一个元素已经是有序的,因此从第二个元素开始,因此训话是(n-1)次
int j= i-1;//倒着找位置
int temp = num[i];//记录需要插入的那个元素
while(j>=0 && num[j]>temp){//找到需要插入的位置
num[j+1]=num[j];//把j开始的都往后面移一个位置,把需要插入的位置空出来
j--;
}
num[j+1]=temp;//这个时候,在上面j已经——啦,所以这要加回来
cout<<"第"<<i<<"趟排序结果如下"<<endl;
for(int i=0;i<len;i++){
cout<<num[i]<<" ";
}
cout<<endl;
}
}
int main(int argc, char *argv[]) {
int n;
cin>>n;
int num[n];
for(int i=0;i<n;i++){
cin>>num[i];
}
InsertSort(num,n);
return 0;
}