查找 - 顺序表查找

#include<cstdio>
#include<cstring>
#include<cstdlib>

int Sequential_Search1(int *a,int n,int key){
	int i;
	for(i=0;i<=n;i++){
		if(a[i] == key)
			return i;
	}
	return 0;
}
int Sequential_Search2(int *a,int n,int key){
	int i;
	a[0] = key;
	i = n;
	while(a[i] != key){
		i--;
	}
	return i;
}
int main(){
	int a[11] = {0,3,123,42,67,36,51,8,45,1,55};
	printf("普通顺序表查找:%d\n",Sequential_Search1(a,10,36));
	printf("优化顺序表查找:%d\n",Sequential_Search2(a,10,36));
	return 0;
}

  

时间: 2024-10-06 00:56:23

查找 - 顺序表查找的相关文章

顺序表查找和有序表查找

查找里面顺比表查找和有序表查找(包括二分查找,插值查找,斐波那契查找)比较简单,直接贴代码,代码里面有详细注释. 1 #include <iostream> 2 using namespace std; 3 4 //顺序表查找(线性查找.静态表查找) 时间复杂度为O(n) 5 int Seq_Search(int *s,int n,int key) 6 { 7 s[0] = key; //设置了一个哨兵,避免了每次比较一次过后都要判断查找位置是否越界 8 int i = n; 9 while

查找-顺序表的查找

相关术语: 查找表:(Search Table)是由同一类型的数据元素(或记录)构成的集合. 关键字:(Key)是数据元素中某个数据项的值,又称为键值,它可以标识一个数据元素. 主关键字:若某个关键字可以唯一地标识一个记录,则称此关键字为主关键字(Primary Key).这就意味着,对于不同的记录,其主关键字均不相同.主关键字所在的数据项 成为主关键码. 次关键字:对于那些可以识别多个数据元素(或记录)的关键字,我们称之为次关键字(Second Key). 查找:就是根据给定的某个值,在查找表

顺序表查找及其优化(Java)

顺序表查找(线性查找): 1 private static void Ordersearch(int[] arr,int num) { 2 for (int i = 0; i < arr.length; i++) { 3 if (arr[i]==num) { 4 System.out.println(arr[i]); 5 return; 6 } 7 } 8 System.out.println("not found "); 9 10 } 优化方案:上面的方式每次循环都要判断i是否

顺序表查找算法及其优化

顺序查找算法实现如下: var arr = [5, 2, 4, 3, 1] , sequentialSearch = function(arr, val) { var i = 0 , len = arr.length; for ( ; i < len; i++) { // 比较一次 if (arr[i] === val) { // 比较二次 return i; } } return i; // 返回len,则说明查找失败 } 这里并不是足够完美, 因为每次循环时都需要对i是否越界, 即是否小于l

分块查找(索引顺序表查找)

分块查找:分块查找又称索引顺序查找,它是顺序查找的一种改进方法. 方法描述:将n个数据元素"按块有序"划分为m块(m<=n).每一块中的数据元素不必有序,但块与块之间必须"按块有序",即第1快中的任一元素的关键字都必须小于第2块中任一元素的关键字:而第2块中任一元素又都小于第3块中的任一元素,-- 图示分块如下: 操作步骤: 1.先选取各快中的最大关键字构成一个索引表 2.查找分两部分:先对索引表进行二分查找或顺序查找,以确定待查记录在哪一块中:然后在已确定的

算法学习之查找算法:静态查找表(1)顺序表查找

引言: 对查找表一般的操作有:1.查询某个"特定的"数据元素是否在查找表中:2.检索某个"特定的"数据元素的各种属性:3.在查找表中插入一个数据元素:4.从查找表中删去某个数据元素. 静态查找表的操作只包括两种:1.查找某个"特定的"数据元素是否在查找表中:2.检索某个"特定的"数据元素的各种属性: 静态查找表又有四种表现形式:顺序表的查找.有序表的查找.静态树的查找.索引顺序表的查找. 静态查找涉及的关键字类型和数据元素类型

数据结构-查找-线性表查找技术

顺序表的查找技术 假设有一组书8,5,9,80,16,5,56....如何查找我们的value? 一般为 for(int i=0;i<size;i++) { if(arry[i]==value) { return i; } }return false; 看第一个for循环中每次都需要判断一次i<size,那我们遍历100个数最坏情况下其实是比较了200次. 于是我们设定一个哨兵在a[0],然后while循环从后往前比较,加入比较到就返回i,否则返回0. 1 int search(vector&

数据结构(六)查找---有序表查找(三种查找方式:折半,插值,斐波拉契查找)

前提 有序表查找要求我们的数据是有序的,是排序好的,我们只需要进行查找即可 我们下面将介绍折半查找(二分查找),插值查找,斐波那契查找 一:折半查找 (一)定义 二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法.但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列. (二)查找过程 首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功:否则利用中间位置记录将表分成前.后两个子表,如果中间位置记录的关

类和实例属性的查找顺序 mro查找

如果多个类继承父类,然后又被多个类继承这种复杂的问题,可以使用 mro方法 例如: class A: pass class C(D): pass class B(D): pass class A(B,C): pass print(A.__mro__) python3 主要使用的是C3算法,能够自适应深度查找和广度查找 原文地址:https://www.cnblogs.com/shrimpPython/p/10695941.html