【C语言-23】如何在整型有序数组中查找想要的数字,(内含二分查找法),
2019-04-07 15:45
302 查看
二分查找法:
- 二分查找也称折半查找,它是一种效率较高的查找方法。
- 但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列.
- 代码如下:
-
[code]#include<stdio.h> #include<stdlib.h> int main() { int arr[] = { 1,2,3,4,5,6,7,8,9,0 };//创建整形数组; int left = 0; int right = sizeof(arr) / sizeof(0) - 1;//数组元素个数=总字节/单字节-1; int key = 6; int mid = 0; while (left <= right) {//待查元素存在区间; mid = (left + right) / 2; if (arr[mid] > key) { right = mid - 1; } else if (arr[mid] < key) { left = mid + 1; } else break; } if (left <= right) printf("找到了,下标是%d\n", mid); else printf("找不到\n"); system("pause"); }
运行结果:
顺序查找法:
- 将数组中的数字从第一个元素开始,依次与需要朝赵的关键字比较。
- 若某个元素匹配关键字,则 查找成功,返回下标;
- ;若查找到最后一个元素还能找到关键字,则查找失败,返回-1;
- 。
-
[code] #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> int main() { int arr[10] = { 1,2,3,4,5,6,7,8,9,0 }; int key ,i; printf("请输入你想查找的数:"); scanf("%d", &key); for (i = 0; i < 10; i++) { if (key == arr[i]) { printf("找到了,下标是%d", i); system("pause"); return 0; } }if (i = 10) { printf("%d", -1); } system("pause"); }
运行结果:
-
相关文章推荐
- (C语言)在整型有序数组中查找想要的数字, 找到了返回下标,找不到返回-1.(折半查找)
- .写代码可以在整型有序数组中查找想要的数字,找到了返回下标,找不到返回-1.(折半查找)C语言
- C语言在整型有序数组中查找想要的数字。(折半查找法)
- 【C语言】在整型有序数组中查找想要的数字(折半查找/二分查找)
- 写代码可以在整型有序数组中查找想要的数字,找到了返回下标,找不到返回-1.(折半查找)
- 函数在整型有序数组中查找想要的数字(折半查找)
- 写代码可以在整型有序数组中查找想要的数字,找到了返回下标,找不到返回 - 1.(折半查找)
- 【C语言基础】写代码可以在整型有序数组中查找想要的数字(while循环,if条件语句)
- 写代码可以在整型有序数组中查找想要的数字,找到了返回下标,找不到返回-1.(折半查找)
- 写代码可以在整型有序数组中查找想要的数字,找到了返回下标,找不到返回-1.(折半查找)
- 折半查找—写代码实现在整型有序数组中查找想要的数字,找到了返回下标,找不到返回-1.
- 写代码可以在整型有序数组中查找想要的数字
- 【C练】写代码可以在整型有序数组中查找想要的数字, 找到了返回下标,找不到返回-1.(折半查找)
- 写代码可以在整型有序数组中查找想要的数字,找到了返回下标,找不到返回-1.(折半查找)
- 写代码可以在整型有序数组中查找想要的数字, 找到了返回下标,找不到返回-1.(折半查找)
- 写代码可以在整型有序数组中查找想要的数字, 找到了返回下标,找不到返回 - 1.(折半查找)
- 可以在整型有序数组中查找想要的数字,找到了返回下标,找不到返回-1.(折半查找)
- 在整型有序数组中查找想要的数字,找到了返回下标,找不到返回-1.(折半查找)
- 写代码可以在整型有序数组中查找想要的数字,找到了返回下标,找不到返回-1.(折半查找)
- 写代码可以在整型有序数组中查找想要的数字, 找到了返回下标,找不到返回-1.(折半查找)