二分查找排序
排序 查找 二分
2023-09-11 14:22:20 时间
代码:
1 int sequenceSearchV0(int *arr, int value, int size){ 2 for(int i = 0; i < size; i++){ 3 if(*(arr + i) == value){ 4 return i; 5 } 6 } 7 return -1; 8 } 9 10 int sequenceSearchV1(int *arr, int value, int size){ 11 int tmp = -1; 12 for(int i = 0; i < size; i++){ 13 if(*(arr + i) == value){ 14 tmp = i; 15 } 16 } 17 return tmp; 18 } 19 20 int sequenceSearchV2(int arr[], int value){ 21 int size = sizeof(arr)/sizeof(arr[0]); 22 int tmp = -1; 23 for(int i = 0; i < size; i++){ 24 if(*(arr + i) == value){ 25 tmp = i; 26 } 27 } 28 return tmp; 29 } 30 31 int binarySearch(int arr[], int valule){ 32 int tmp = -1; 33 int size = sizeof(arr)/sizeof(arr[0]);//11 34 int low = 0; 35 int high = size - 1; 36 int mid = 0; 37 while(low <= high){ 38 mid = (low + high)/2 39 if(arr[mid] == value){ 40 tmp = mid; 41 } 42 if(arr[mid] > value){ 43 high = mid - 1; 44 } 45 if(arr[mid] < value){ 46 low = mid + 1; 47 } 48 } 49 return tmp; 50 } 51 int main(int argc, char **argv) 52 { 53 int arr[] = {0,16,24,35, 44, 47,59,62,73,88,99}; 54 int key=100; 55 int index=binarySearch(arr,key); 56 printf("%d is located at: %d\n", key, index); 57 return 0; 58 }
相关文章
- 二叉查找树(二叉排序树)创建,插入,删除操作。
- 关于二叉排序树树建立并返回根节点
- 请写出css3样式的优先级,并排序
- LeetCode高频题34. 在排序数组中查找元素的第一个和最后一个位置
- C/C++ 排序&&查找算法(面试)
- 查找与排序05,冒泡排序
- 查找与排序01,线性查找,时间复杂度,算法
- 递归分治法在快速排序中的应用 java以界面的方式实现
- HDU 5777 domino (排序,水题)
- 《Python数据科学指南》——1.23 采用键排序
- 转 sort按照数据大小排序
- 力扣解法汇总1752. 检查数组是否经排序和轮转得到
- 【C语言】通讯录(添加、删除、查找、修改、显示、清空、按名字排序)
- 希尔排序——C语言实现
- C语言回调函数介绍及用qsort函数排序数组和结构体
- 经典二分法查找的进阶题目——LeetCode33 搜索旋转排序数组