zoukankan      html  css  js  c++  java
  • 查找

    顺序查找

    基本思想:从数组的首元素开始,将元素逐个与待查找的关键字进行比较,直到找到相等的为止。若整个数组中没有与待查找元素相等的元素,则查找不成功。时间复杂度 $ O(n)$。

    int seqSearch(int a[], int n, int key)
    {
    	for(int i = 0; i < n; i++)
    	{
    		if(a[i] == key)
    			return i;
    	}
    
    	return -1;
    }
    
    

    折半查找

    适用于在一个元素排列有序的数组中进行查找。
    基本思想:对于已排序的序列,经过一次比较后,可将序列分割成两部分,然后只在有可能包含待查找元素的一部分中继续查找,,并根据试探结果继续分割,逐步缩小查找范围,直至找到或找不到为止。

    int binarySearch(int a[], int n, int key)
    {
    	int low = 0;
    	int high = n - 1;
    
    	while(low <= high)
    	{
    		int mid = (low + high) / 2;
    		if(key == a[mid])
    			return mid;
    		else if(key < a[mid])
    			high = mid - 1;
    		else
    			low = mid + 1;
    	}
    
    	return -1;
    }
    
  • 相关阅读:
    第十一周编程作业
    第十周作业
    第九周编程作业
    第八周作业总结
    第七周作业编程
    第六周作业总结
    第五周课程总结&试验报告(三)
    第四周课程总结&试验报告(二)
    第三周总结
    java2
  • 原文地址:https://www.cnblogs.com/huerxiong/p/10633148.html
Copyright © 2011-2022 走看看