直接插入排序
实现:a...a+k-1为已排序好的,插入新值在a+k,其值为key,
故将key通过swap(i,i-1)逐步移动至其位置,数组依旧有序。
//二分插入排序
#include <iostream>
#include <stdio.h>
#include <string.h>
using namespace std;
#define T 1000000
void insort(int *a,int n)
{
for(int i=1;i<n;i++)
for(int j=i;j&&a[j]<a[j-1];j--)
swap(a[j],a[j-1]);
}
int main ()
{
while(scanf("%d",&n)!=EOF)
{
for(int i=0;i<n;i++)
scanf("%d",&a[i]);
insort(a,n);
int p=(n+1)/2;
printf("%d\n",a[p-1]);
}
return 0;
}