zoukankan      html  css  js  c++  java
  • 多种查找算法测试

    利用随机函数产生30000个随机整数,进行顺序查找、折半查找,并进行比较。提示:用顺序存储结构。

    // 查找 
    #include<stdio.h>
    #include<time.h>
    #include<stdlib.h>
    #define numcnt 80000 
    int num[numcnt];
    // 顺序查找  
    int find_1(int x){
    	int i;
    	for( i = 0; i < numcnt; i++){
            if(x == num[i]){
                return i;
            }
        }
        return -1; // 没有找到 
    }
    
    // 折半查找:
    int find_2(int x){
    	int low = 0;
        int high = numcnt - 1;
        int mid;
        while(low <= high){
            mid = (low+high)/2; //取中值 
            if(num[mid] == x) 
    			break; //找到,结束循环
            else if(num[mid] < x)
    			low = mid+1; //如果目标值比当前中间值大,说明目标值在中间值的后面low移动到mid+1 
            else 
    			high = mid - 1;
        }
        if(low <= high) //找到
            return mid;
        else //未找到 
            return -1;
    } 
     
    int main(){
    	int r2, r1;
    	int x;
    	clock_t start;
    	int i;
    	
    	srand(time(0));  //设置时间种子
    	
    	for(i=0; i < numcnt; i++){
    		num[i] = i;    
    	}
    	
    	x = rand() % numcnt; // 随机一个需要查找的数 
    	
    	// 顺序查找 
    	start = clock();
        r1 = find_1(num[x]);
        printf("查询结果:%d
    ", r1); 
        printf( "顺序查找-用时: %f ms
    ", (double)(clock() - start) );
    	
    	// 折半查找:
    	start = clock();
    	r2 = find_2(num[x]);
        printf("查询结果:%d
    ", r2); 
        printf( "折半查找-用时: %f ms
    ", (double)(clock() - start) );
    	
        return 0;
    } 
    

      

  • 相关阅读:
    微信支付遇到的坑
    linux搭载discuz
    关于php自带的访问服务器xml的方法的坑
    yii的验证码
    菜鸟配置阿里云
    ajax(通过jQuery实现)
    leetcode95 Unique Binary Search Trees II
    leetcode96 Unique Binary Search Trees
    leetcode98 Validate Binary Search Tree
    leetcode-99 Recover_Binary_Search_Tree
  • 原文地址:https://www.cnblogs.com/zhumengdexiaobai/p/12931786.html
Copyright © 2011-2022 走看看