|
|
|
|
@ -0,0 +1,73 @@
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
//ʱ<>临<EFBFBD>Ӷȣ<D3B6>O(n^2)
|
|
|
|
|
//<2F>ռ临<D5BC>Ӷȣ<D3B6>O(1)
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>ʵ<EFBFBD>֣<EFBFBD>
|
|
|
|
|
|
|
|
|
|
#include <stdio.h>
|
|
|
|
|
|
|
|
|
|
void InsertionSort(int *arr, int size)
|
|
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
int i, j, tmp;
|
|
|
|
|
|
|
|
|
|
for (i = 1; i < size; i++)
|
|
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
if (arr[i] < arr[i - 1])
|
|
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
tmp = arr[i];
|
|
|
|
|
|
|
|
|
|
for (j = i - 1; j >= 0 && arr[j] > tmp; j--)
|
|
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
arr[j + 1] = arr[j];
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
arr[j + 1] = tmp;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
int main(int argc, char* argv[])
|
|
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
int a[5] = { 43, 56, 78, 23, 43 };
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
printf("\n<EFBFBD><EFBFBD><EFBFBD><EFBFBD>֮ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n");
|
|
|
|
|
|
|
|
|
|
for (int i = 0; i < 5; i++)
|
|
|
|
|
|
|
|
|
|
printf("%5d", a[i]);
|
|
|
|
|
|
|
|
|
|
printf("\n");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>㷨
|
|
|
|
|
|
|
|
|
|
InsertionSort(a, 5);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
printf("\n<EFBFBD><EFBFBD><EFBFBD><EFBFBD>֮<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n");
|
|
|
|
|
|
|
|
|
|
for (int i = 0; i < 5; i++)
|
|
|
|
|
|
|
|
|
|
printf("%5d", a[i]);
|
|
|
|
|
|
|
|
|
|
printf("\n\n");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return 0;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD>䣺 0.056050S
|