查找
查找
常见的查找算法有“顺序查找”和“二分查找”
1.顺序查找
顺序查找就是按照从前往后的顺序,将数组中的元素依次与要查找的的数x进行比较。如果数组中的元素是有序的(递增或递减)。顺序查找这个方法的时间复杂度n。
2.二分查找
运用二分查找的优势在于它的比较次数少、查找速度快。大家可以看代码理解一下。
int left=0,right=n-1; int find=n //find用来标记找到的位置 while(left<=right) { int mid=(left+right)/2; if(a[mid]<x) l=mid+1;//x只能在右半部分 if(a[mid]>x) r=mid-1;//x只能在左半部分 if(a[mid]==x) break;//找到之后退出循环 } while(a[mid-1]==x) mid--;//跳出循环后往前找,看能不能找到与mid一样的数。 printf("%d",mid);//输出