@breakerthb
2017-07-14T02:07:16.000000Z
字数 754
阅读 1327
DataStruct
#include <stdio.h>void insert_sort(int* array, int n){int i, j;int temp;for (i = 1; i < n; i++) // 让前i + 1个数有序{temp = array[i];for (j = i; j > 0 && array[j - 1] > temp; j--) // 第i个数依次和前面的每个数比较,直到比前一个数大为止{array[j] = array[j - 1]; // 第j个数右移}array[j] = temp;}}void InsertSort(int* pArr, int cnt){int temp;for (int i = 1; i < cnt; i++){// 0 ~ i 排序temp = pArr[i];int j; // temp的目标位置for (j = i; j > 0; j--){if (temp < pArr[j - 1]){pArr[j] = pArr[j - 1];}else{break;}}pArr[j] = temp;}}////////////////////////// 通过插入得到一个有序列(动态)// 随时都有序int g_arr[100];int g_cnt = 0;void Insert(int num){int i;for (i = g_cnt; i > 0; i--){if (num < g_arr[i - 1]){g_arr[i] = g_arr[i - 1];}else{break;}}g_arr[i] = num;g_cnt++;}int main(){int arr[] = { 5, 6, 2, 1, 7, 4, 3, 0 };//InsertSort(arr, 8);for (int i = 0; i < 8; i++){Insert(arr[i]);}for (int i = 0; i < g_cnt; i++){printf("%d\n", g_arr[i]);}return 0;}
