网站类型的销售,番禺人才网官网,做番号类网站违法吗,企业建设营销型网站的目的有/** 查找(数组) 1 顺序查找 #xff1a; 就是遍历数组每一个元素同该元素比较#xff0c;但是问题是效率比较低 2 折半查找 #xff1a; 条件是数组必须是有顺序的 */ #include stdio.h #define n 2 int main() { // 折半查找 /* 思路#xff1a;将该元素同…/** 查找(数组) 1 顺序查找 就是遍历数组每一个元素同该元素比较但是问题是效率比较低 2 折半查找 条件是数组必须是有顺序的 */ #include stdio.h #define n 2 int main() { // 折半查找 /* 思路将该元素同中间元素比较如果有则存在否则判断该元素在哪半部分继续查找 */ // 任意输入整数x,在有顺序的数组中查找是否有同x值相同的元素 // 定义输入数据 int x -1; // 数组array int array[10] {2, 10, 19, 22, 34, 36, 55, 67, 76, 88}; scanf(%d, x); // 定义开始元素下标start 尾标end, 中间元素下标mid int start 0; int end 9; int mid (start end)/2; while (array[mid] ! x (end start)){ if (x array[mid]) { end mid - 1; }else{ start mid 1; } mid (start end)/2; } printf(%d\n, mid); return 0; } #include stdio.h #pragma mark 折半查找 前提是该数组为顺序数组同时折半查找还能用于插入有序数组中得位置 #pragma mark 当然我们也可以用for循环查找元素但是效率较低当面对大量数据有序数据是折半查找效率比较高 #pragma mark 如果我们面对一些无须的数据时如果查找一组数据中是否含有某个数据时可以先排序然后用折半查找该元素 #pragma mark 折半查找 int zheban_array(int *array, int len, int num) { int start 0; int end len-1; // 循环的条件 while (startend) { int mid (startend)/2; if (array[mid]num) { start mid1; }else if(array[mid]num){ end mid-1; }else{ return mid; // 如果是查找插入元素的话 mid1就是要插入的位置(查找到存在的插入的元素) } // mid (startend)/2; } return -1; //如果查找的话return start 就是要插入的位置(查找插入的不存在的元素) } #pragma mark 遍历数组 void printf_array(int *array, int len){ for (int i 0; ilen; i) { printf(%d\t, array[i]); } printf(\n); } int main() { int array[] {3, 5, 8, 23, 34, 65, 99}; int len sizeof(array)/sizeof(int); int n zheban_array(array, len, 34); printf(%d\n, n); return 0; } 转载于:https://www.cnblogs.com/-boy/p/4020803.html