#include <stdio.h>
void mySwap(int *a, int i, int j)
{
int tmp = a[i];
a[i] = a[j];
a[j] = tmp;
}
void myPrint(int *a, int len)
{
int i;
for (i = 0; i < len; i++)
{
printf ("%4d", a[i]);
}
printf ("\n");
}
void mySort(int *a, int len)
{
int i;
for (i = 1; i < len; i++)
{
int get = a[i];
int left = 0;
int right = i-1;
while (left <= right)
{
int mid = (left+right)/2; // 中间元素的下标
if (a[mid] > get)
right = mid-1;
else
left = mid+1;
}
// 移位
int j;
for (j = i-1; j >= left; j--)
a[j+1] = a[j];
a[left] = get;
}
}
int main()
{
int a[] = {9,8,7,6,5,4,13,3,2,1,0};
int len = sizeof(a)/sizeof(a[0]);
mySort(a, len);
myPrint(a, len);
return 0;
}