折半查找和插值查找.txt

来自「折半查找和插值查找」· 文本 代码 · 共 57 行

TXT
57
字号
#include <stdio.h>
 int sqlList[20] = {5, 9, 13, 17, 22, 31, 47, 68, 71};

 int biSearch(int sqlList[], int num, int element) {
  int from = 0;
  int to   = num-1;
  while(from <= to) {
   int mid = (from + to) >> 1;
   if(sqlList[mid] == element)
    return mid;
   if(sqlList[mid] > element)
    to = mid - 1;
   else
    from = mid + 1;
  }
  return -1;
 }
 int insertValueSearch(int sqlList[], int num, int element) {
  int from = 0;
  int to   = num-1;
  while(from <= to) {
   int mid = (int)(from + (element - sqlList[from])
   /(sqlList[to] - sqlList[from]) * (to - from) + 0.5);
   if(sqlList[mid] == element)
    return mid;
   if(sqlList[mid] > element)
    to = mid - 1;
   else
    from = mid + 1;
  }
  return -1;
 }

 void insert(int sqlList[], int num, int element) {
  int from = 0;
  int to   = num-1;
  while(from <= to) {
   int mid = (from + to) >> 1;
   if(sqlList[mid] > element)
    to = mid-1;
   else
    from = mid+1;
  }
  for(to = num; to > from; to--)
   sqlList[to] = sqlList[to-1];
  sqlList[from] = element;
 }
 void main() {
  printf("\n\n\t\t%d\n", biSearch(sqlList, 9, 22));
  printf("\n\n\t\t%d\n", insertValueSearch(sqlList, 9, 22));
  insert(sqlList, 9, 15);
  printf("\n\n\t\t%d\n", biSearch(sqlList, 10, 15));
 }



⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?