03.01 数据结构--插入排序

1.算法原理

插入排序就是每一步都将一个待排数据按其大小插入到已经排序的数据中的适当位置,直到全部插入完毕。

具体的图示如下:

数据结构--插入排序

2.代码

<code>#include <stdio.h>  int insert_sort(int *arr,int size){int ret = 0;if(arr == NULL)return -1;int i = 0;int j = 0;int tmp = 0; for (i = 1; i < size; ++i){/* code */if(arr[i-1] > arr[i]){tmp = arr[i];for(j=i;j>0;j--){if(arr[j-1] > tmp)arr[j] = arr[j-1];elsebreak;}arr[j] = tmp;}}  return ret;} int main(int argc, char const *argv[]){/* code */ int i = 0;int arr[] = {3,10,2,15,8,20,1,-1,30,100,20,-23,107,89};  insert_sort(arr,sizeof(arr)/sizeof(arr[0])); for (i = 0; i < sizeof(arr)/sizeof(arr[0]); ++i){/* code */fprintf(stderr, "%d  ", arr[i]);}fprintf(stderr, "\\n"); return 0;}/<stdio.h>/<code>


分享到:


相關文章: