zoukankan      html  css  js  c++  java
  • 二分查找性能试验

    Intro

    • redis 号称是高性能的字典服务。redis 的底层常用的数据结构 (intset,skiplist 等大量使用二分查找技术)。 现在想看一下 二分查找到底有多块

    code

    #include <stdio.h>
    
    int binarySearch(int arr[], int l, int r, int x)
    {
        if (r >= l) {
            int mid = l + (r - l) / 2;
            if (arr[mid] == x)
                return mid;
            if (arr[mid] > x)
                return binarySearch(arr, l, mid - 1, x);
            return binarySearch(arr, mid + 1, r, x);
        }
        return -1;
    }
    
    int main(int argc, char* agrv[]) {
    
     // 生成测试所用的数组
      int arr[1000], a[10]={1,2, 4,5 , 7,8, 9,10, 17, 21};
        for (int i = 0; 100 > i; i++) {
          for (int j =1; 11 > j; j++) {
            if (i*10 +j > 999) {
                break;
            }
            arr[i*10+j] = i*50 + arr[j-1];
        }
      }
    
      // 二分查找
        for (int i = 0; 200 >i ;i++) {
          for (int j = 0; 1000> j; j++) {
            binarySearch(arr, 0, 999, arr[j]);
          }
        }
      return 0;
    }
    
    • 结论: 对 1000 个数字上执行 20 万次 二分查找只用了 0.022 秒
  • 相关阅读:
    找回感觉的练习
    Java住房公积金管理系统---长春工业大学期末实训
    11.6_Filter
    11.5_Listener
    11.4_Ajax & Jquery
    11.3_MVC设计模式
    11.2_数据库连接池&DBUtils
    11.1_事物
    10.7_JSP & EL & JSTL
    10.6_Cookie&Session
  • 原文地址:https://www.cnblogs.com/tmortred/p/13129641.html
Copyright © 2011-2022 走看看