折半查找
前提是有序数组
int binSearch(int *a,int k,int low,int high)
{
int mid;
while(low<=high)
{
mid = (low+high)/2;
if(k==a[mid]) return mid;
if(k>a[mid])
{
low=mid+1;
}else
{
high=mid-1;
}
}
return -1;
}
简单选择排序
每一趟找一个最小值放到左面,与冒泡的区别为只在找到这个值后才交换
void choice(int *a,int len)
{
int i,j,min,temp;
for(i=0;i<len;i++)
{
min = i;
for(j=i+1;j<len;j++)
{
if(a[j]<a[min])
{
min = j;
}
}
temp = a[min];
a[min] = a[i];
a[i] = temp;
}
}
冒泡排序
关键:两个循环从左到右再从右到左,循环方向不能一致。
void bubble(int *a,int len)
{
int i,j,temp;
for(i=0;i<len;i++)
{
for(j=len-1;j>i;j--)
{
if(a[j]<a[j-1])
{
temp = a[j];
a[j] = a[j-1];
a[j-1] = temp;
}
}
}
}