//插入排序
template<typename T>
void chaRu_paiXu(T a[],int n)
{
T temp;
int i,j;
for(i=1;i<n;i++)
{
j = i;
temp = a[j];
while(j>0 && temp<a[j-1])
{
a[j] = a[j-1];
j--;
}
a[j] = temp;
}
}
template<typename T>
void Swap(T &x,T &y)
{
T temp = x;
x = y;
y = temp;
}
//选择排序
template<typename T>
void xuanZe_paiXu(T a[],int n)
{
int i,j,small;
for(i=0;i<n-1;i++)
{
small = i;
for(j=i+1;j<n;j++)
{
if(a[j]<a[small])
{
small = j;
}
Swap(a[i],a[small]);
}
}
}
//冒泡排序
template<typename T>
void maoPao_paiXu(T a[],int n)
{
int i,j;
for(i=0;i<n-1;i++)
{
for(j=0;j<n-i-1;j++)
{
if(a[j] >a[j+1])
{
Swap(a[j],a[j+1]);
}
}
}
}
//顺序查找
template<typename T>
int shunXu_chaZhao(T a[],int n,T key)
{
int i;
for(i=0;i<n;i++)
{
if(a[i] == key)
return i+1;
}
return 0;
}
//折半查找
template<class T>
int zheBan(T a[],int n,T key)
{
int mid,low,high;
T midValue;
low = 0;
high = n-1;
while(low<=high)
{
mid = (low+high)/2;
midValue = a[mid];
if (midValue == key)
{
return mid + 1;
}
else if (midValue > key)
{
high = mid - 1;
}
else
{
low = mid + 1;
}
}
return 0;
}
//英语实在不怎么地;