折半查找、简单选择排序和冒泡排序

来源:互联网 发布:淡雅的名字 知乎 编辑:程序博客网 时间:2024/06/06 19:07

折半查找

前提是有序数组

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;            }        }    }}


原创粉丝点击