1排序算法之直接插入排序
#include<stdio.h>
#include<iostream>
using namespace std;
int main(){
int n=0,value=0;
cin>>n;
int *val=new int[n];
int num=0;
int size=n;
while(size--){
cin>>value;
val[num]=value;
num++;
}
int move_num=0;
for(int cur_num=1; cur_num<n; cur_num++){
move_num=cur_num-1;
while(val[cur_num]<val[move_num]){
move_num--;
}
if(move_num<cur_num-1&&move_num>=0){
int temp=val[cur_num];
int j=cur_num;
while(j>move_num){
val[j]=val[j-1];
j--;
}
val[move_num+1]=temp;
}
else if(move_num==-1)
{
int temp=val[cur_num];
int j=cur_num;
while(j>0){
val[j]=val[j-1];
j--;
}
val[0]=temp;
}
}
for(int i=0;i<n;i++)
cout<<val[i]<<" ";
cout<<endl;
return 0;
}