int BinSearch sqlist r int key int n low 1; high n; find 0; while low ≤ high and not find mid low + high 2 ; if key rmidkey high mid - 1; else if key rmidkey low mid + 1; else i
分析:
这是一个二分查找算法,要在有序的数组r中查找key,如果找到了就返回它在数组中的位置i,否则返回0。
主函数程序源代码:
int main() { sqlist r[10]; int i, n, key, pos; printf("请输入元素个数:"); scanf("%d", &n); printf("请输入%d个元素的值:\n", n); for (i = 1; i <= n; i++) { scanf("%d", &r[i].key); } printf("请输入要查找的元素值:"); scanf("%d", &key); pos = BinSearch(r, key, n); if (pos) { printf("元素%d在数组中的位置是%d\n", key, pos); } else { printf("元素%d不在数组中\n", key); } return 0; }
原文地址: https://www.cveoy.top/t/topic/eJHU 著作权归作者所有。请勿转载和采集!