查找算法(一):顺序查找
来源:互联网 发布:mac air电脑壁纸 高清 编辑:程序博客网 时间:2024/05/17 06:18
查找-是最常见的数据操作之一,数据结构核心运算之一,其重要性不言而喻。顺序查找是人们最熟悉的查找策略,对于小规模的数据,顺序查找是个不错的选择。
(一)基本思想
从数据的第一个元素开始,依次比较,直到找到目标数据或查找失败。
1 从表中的第一个元素开始,依次与关键字比较。
2 若某个元素匹配关键字,则查找成功。
3 若查找到最后一个元素还未匹配关键字,则查找失败。
(二)时间复杂度
顺序查找平均关键字匹配次数为表长的一半,其时间复杂度为O(n)。
(三)顺序查找的优缺点
顺序查找的优点是对表无要求,插入数据可在O(1)内完成。
缺点是时间复杂度较大,数据规模较大时,效率较低。
(四)代码实现
1 C语言
#include <stdio.h>int seq_search(int array[], int n, int key){ int i; for(i = 0; i < n; i++) { if(key == array[i]) { return i; //查找成功 } } return -1; //查找失败}int main(){ int array[] = {3, 5, 2, 7, 6}; int num = 7; int len = sizeof(array) / sizeof(int); int index = seq_search(array, len, num); if(-1 != index) { printf("%d的位置为%d\n", num, index); } else { printf("没有找到此元素"); } return 0;}
运行结果:
7的位置为3
2 C++函数模板
#include <iostream>using namespace std;#ifndef SEARCH_METHODS#define SEARCH_METHODStemplate<class T>int SeqSearch(T list[], int len, T key){ for(int i = 0; i < len; i++) { if(key == list[i]) { return i; } } return -1;}#endifint main(){ int array[] = {3, 5, 2, 7, 6}; int num = 7; int len = sizeof(array) / sizeof(int); int index = SeqSearch(array, len, num); if(-1 != index) { cout<< num << "的位置为" << index << endl; } else { cout << "没有找到此元素"; } return 0;}
3 Java
package com.z;public class Search { public static int SeqSearch(int[] array, int value){ for(int i = 0; i <= array.length-1; i++) { if(value == array[i]) { return i; } } return -1; } public static void main(String[] args){ int[] a = new int[]{3,5,2,7,6}; int val = 7; int index = SeqSearch(a, val); if(-1 != index) { System.out.println(val + "的位置为" + index); } else { System.out.println("没有找到此元素"); } }}
4 Python
def seq_search(a, value): for i in range(len(a)): if value == a[i]: return i return -1arr = [3, 5, 2, 7, 6]number = 7index = seq_search(arr, number)if -1 == index: print "Number not exists"else: print "The index of the number is %d" % indexinput("Press any key to exit")
阅读全文
0 0
- java查找算法(一)--顺序查找
- 查找算法(一)顺序查找
- 查找算法(一):顺序查找
- 基础算法系列(一)查找算法之顺序查找
- 查找算法总结一 顺序查找
- (一)算法--查找算法顺序查找和二分查找(递归和非递归方式)
- 查找算法一之顺序查找 二分查找
- 查找算法整理(一)---静态查找表:顺序表查找、折半(判定树)查找、静态查找树
- 【数据结构与算法之查找算法一】顺序查找
- 算法 - 顺序查找(C#)
- 算法设计题目一 顺序表查找
- Java对查找算法的实现—顺序查找(一)
- [转载]查找算法----顺序查找
- 查找算法之顺序查找
- 查找算法_顺序查找
- 【算法-查找之一】顺序查找
- 查找算法之顺序查找
- 查找算法之顺序查找
- 腾讯云 基于 CentOS 搭建 Discuz 论坛
- POJ
- 无人驾驶课程准备
- WordPress地址(URL)修改后无法进入网站解决办法
- 国产最火4款HTML5前端框架(JX、KISSY、QWrap、Tangram)
- 查找算法(一):顺序查找
- opencv—HAAR训练器参数
- Hibernate双向的一对多关系映射
- gitignore后悔药(撤销跟踪)
- java并行程序设计模式
- 第一次写博客
- 前端2017面试题汇总
- MRUnit使用实例
- ubuntu下搭建vpn