查找之一顺序查找

一、

 1 public class Sequential_SearchDemo01 {
 2     static int[] num = {1,3,4,6};
 3     public static void main(String[] args) {
 4         int key = 7;
 5         boolean x = Sequential_Search(key);
 6         System.out.println(x);
 7     }
 8     private static boolean Sequential_Search(int key) {
 9         for(int i=0;i<num.length;i++){
10             if(num[i] == key){
11                 return true;
12             }
13         }
14         return false;
15     }
16 }

输出结果为:false

二、顺序查找的优化

 1 public class Sequential_SearchDemo02 {
 2     static int[] num = {0,5,8,9,6,3};
 3     public static void main(String[] args) {
 4         int key = 7;
 5         int x = Sequential_Search(key);
 6         System.out.println(x);
 7     }
 8     private static int Sequential_Search(int key) {
 9         int i;
10         num[0] = key;
11         i = num.length - 1;
12         while(num[i] != key){
13             i--;
14         }
15         return i;
16     }
17
18 }

如果输出为0,表示没有查到key,;

时间复杂度为O(n)

时间: 2024-12-20 21:49:40

查找之一顺序查找的相关文章

Java中常用的查找算法——顺序查找和二分查找

Java中常用的查找算法——顺序查找和二分查找 一.顺序查找: a) 原理:顺序查找就是按顺序从头到尾依次往下查找,找到数据,则提前结束查找,找不到便一直查找下去,直到数据最后一位. b) 图例说明: 原始数据:int[] a={4,6,2,8,1,9,0,3}; 要查找数字:8 代码演示: import java.util.Scanner; /* * 顺序查找 */ public class SequelSearch { public static void main(String[] arg

分块查找\索引顺序查找

简介: 分块查找又称索引顺序查找,它是顺序查找的一种改进方法,性能优于顺序查找. 方法描述: 将n个数据元素"按块有序"划分为m块(一般块的长度均匀,最后一块可以不满)(m<=n),每一块中的节点不必有序,但块与块之间必须"按块有序":即第一块中的关键字必须小于(或者大于)第二块中的关键字,第二块中的关键字必须小于(或者大于)第三块中的关键字,构造索引表,索引表按关键字有序排列. 如下图所示: 图示为一个索引顺序表,其中包括三个块,第一个块的其实地址为0,快内

一般查找 (顺序查找)

顺序查找:在一个 已知无序队列中找出 与 给定关键字相同的数的具体位置.原理是让关键字与队列中的数从第一个开始逐个比较,直到找出与给定关键字相同的数为止.复杂度为o(n). #include<stdio.h> int fun(int a[],int n,int x) { int i; for(i=0;i<n;i++) { printf("该点是%d\n",a[i]); if(a[i]==x) { puts("找到\n"); return(i); }

查找算法:二分查找、顺序查找

08年9月入学,12年7月毕业,结束了我在软件学院愉快丰富的大学生活.此系列是对四年专业课程学习的回顾,索引参见:http://blog.csdn.net/xiaowei_cqu/article/details/7747205 查找算法 查找算法是在存在的序列(list) 中查找特定的目标(target),要求序列中每个记录必须与一个关键词(key)关联才能进行查找. 查找算法通常需要两个输入: 1.被查找的序列 2.要查找的关键词 查找算法的输出参数和返回值: 1.返回类型为 Error_co

查找算法系列之简单查找:顺序查找、二分查找、分块查找

近期总结了各大排序算法的原理 ,并对其进行了实现,想着一并把查找算法总结了,今天就着手开始总结查找算法. 废话不多说,这篇文章从最简单的查找算法开始讲起,之后会补充复杂的二叉搜索树查找(BST)和B树,B+树查找以及哈希查找等. 顾名思义,查找就是寻找到关键字在队列中的位置,最笨的查找算法就是依次顺序比较,复杂度为O(n),但是有很多方法的复杂度可以达到O(logn)等等. 1.顺序查找 关键字与数组中的数顺序比较,时间复杂度O(n). template<class T> int OrderS

数组查找之顺序查找-PHP

1 <?php 2 //设置请求头 3 header("content-type:text/html;charset=utf-8"); 4 5 /* 6 顺序查找: 7 源:一个数组 8 需求:查找有没有一个值,找到就返回下标,没有就返回提示 9 */ 10 11 $arr = array(1,6,3,100,9,100,0,7,-4,0); 12 13 function search(&$arr, $number1, $number2){ 14 15 foreach($

算法-基础和查找-1.汉诺塔/2.顺序查找/3.二分查找/4.顺序查找和二分查找的比较

1.汉诺塔: 如下图所示,需要将A柱子中的所有圆盘按照从小到大的顺序移动到C柱子上,并且在移动过程中大圆盘不能在小圆盘上面 分析问题:最终希望呈现的结果是将A柱子上的盘子全部按照从小到大的顺序移动到C柱子上 1.n个盘子,将n-1视为一个整体 2.将n-1个盘子视为一个盘子从a经过c移动到b 3.将n从a移动到c 4.将n-1个盘子从b经过a移动到c 5.结束条件:n>0 代码如下: 1 def hanoi(n, a, b, c): 2 if n > 0: 3 hanoi(n-1, a, c,

每天一点算法-查找算法-顺序查找

如何在一个集合中查找一个特定元素,判断其是否存在,最简单的算法循环该集合,从起点开始查找,一个个元素去比对 假设存在集合:int [] a = {1,2,3,4,5,6,7,8,9,10} 条件:查找7在数组a中是否存在 for(int i = 0;i< a.length - 1; i ++) { if(7 == a[i]) {   //存在 } } 此算法的优点是:简单,缺点是当集合大的时候,查找的效率低,从第一个查找到最后一个 原文地址:https://www.cnblogs.com/hpz

顺序查找和二分查找

1.使用PHP描述顺序查找和二分查找(也叫做折半查找)算法,顺序查找必须考虑效率,对象可以是一个有序数组[转] 2.顺序查找 <?php//$n为待查找的数组元素的个数,$k为待查找的元素function seq_sch($array, $n, $k){ $array[$n] = $k; for($i=0; $i<$n; $i++){ if($array[$i]==$k){ return true;break; } } if ($i<$n) //判断是否到数组的末尾{ return $i