插入排序
// 7,4,9,5,2,6,7,10
插入排序,实际就是拿出一个数,与前面的比较,放到正确的位置上,然后对后面的数做移动,循环往复
#include<iostream>
using namespace std;
int compare(int a,int b){
if(a > b){
return 1;
}else if(a == b){
return 0;
}else{
return -1;
}
}
int swap(int *a,int *b){
int temp = *a;
*a = *b;
*b = temp;
}
// 7,4,9,5,2,6,7,10
void insert_sort(int arr[],int len){
if(arr == NULL || len == 0 || len == 1){
return;
}
for(int i = 1; i < len; ++i){
int j = i - 1,value = arr[i];
while(j >= 0 && compare(value,arr[j]) > 0){
swap(&arr[j],&arr[j+1]);
j--;
}
}
}
int main(){
int arr[8] = {7,4,9,5,2,6,7,10};
insert_sort(arr,8);
for(int i = 0; i < 8; ++i){
cout<<arr[i]<<endl;
}
return 0;
}

浙公网安备 33010602011771号