插入排序:
把无序序列分成有序区和无序区,依次拿无序区的每一个元素依次插入有序区中,经过大小比较实现后移,插入到合适的位置,直至序列有序。
代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, const char *argv[])
{
int arr[]={12,3,57,23,1,5,90,33,26,8};
for(int i=1;i<sizeof(arr)/sizeof(arr[0]);i++){
int tmp=arr[i];
int j;
for(j=i-1;j>=0;j--){
if(tmp<arr[j]){
arr[j+1]=arr[j];
}else{
//arr[j]=tmp;
break;
}
}
arr[j+1]=tmp;
}
for(int i=0;i<sizeof(arr)/sizeof(arr[0]);i++){
printf("%d\t",arr[i]);
}
puts("");
return 0;
}