@breakerthb
2017-07-14T02:07:16.000000Z
字数 754
阅读 1053
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;
}