9.2.1在无序序列中香找在一个无序序列中查找某个数据元素是否存在的算法思想是:从数组的一端开始,用给定数据元素逐个和数组中各数据元素比较,若在数组中查找到要查找的数据元素,则查找成功:否则查找失败
在一个无序序列中查找某个数据元素是否存在的算法思想 是:从数组的一端开始,用给定数据元素逐个和数组中各数据 元素比较,若在数组中查找到要查找的数据元素,则查找成功; 否则查找失败。 9.2.1在无序序列中查找
在无序序列中香找某个数据元素是否存在的函数设计如下:public static int seqSeach(intll a, int elem)/在数组a中顺序查找数据元素elem是否存在。查找成功返回该元素的下标;失败返回-1int n = a.Length ;inti= O;while (i< n && a[i] !=elem) i++;if(i>= n) return -1;else return i;
在无序序列中查找某个数据元素是否存在的函数设计如下: public static int seqSeach(int[] a, int elem) { //在数组a中顺序查找数据元素elem是否存在。查找成 功返回该元素的下标;失败返回-1 int n = a.Length ; int i = 0; while (i < n && a[i] != elem) i++; if (i >= n) return -1; else return i; }
顺序查找算法性能评价分析:查找第1个元素所需的比较次数为1:查找第2个元素所需的比较次数为2:查找第n个元素所需的比较次数为n;总计全部比较次数为:1+2十.十n=(1+n)n/2若求某一个元素的平均查找长度,还应当除以n(等概率),即:ASL成功三(1十n)/2,时间效率为O(n)这是查找成功的情况同理:ASL失败=n顺序查找的特点优点:算法简单,且对顺序结构或链表结构均适用。缺点:ASL太大,时间效率太低
顺序查找算法性能评价 分析: 查找第1个元素所需的比较次数为1; 查找第2个元素所需的比较次数为2; . 查找第n个元素所需的比较次数为n; 总计全部比较次数为:1+2+.+n = (1+n)n/2 这是查找成功的情况 若求某一个元素的平均查找长度,还应当除以n(等概率), 即: ASL成功=(1+n)/2 ,时间效率为O(n) 同理:ASL失败=n 顺序查找的特点 优点:算法简单,且对顺序结构或链表结构均适用。 缺点:ASL 太大,时间效率太低
9.2.2在有序序列中查找1、顺序查找有序序列上顺序查找算法类同无序序列上的查找算法。有序数组中的顺序查找函数如下:public static int orderSeqSearch(intll a, int elem)int n = a.Length;inti= O;while(i<n && a[i]<elem)i++;if(i>=n) return -1;if(a[i] == elem) return i;查找7else return -1;人24589
9.2.2 在有序序列中查找 1、顺序查找 有序序列上顺序查找算法类同无序序列上的查找算法。 有序数组中的顺序查找函数如下: public static int orderSeqSearch(int[] a, int elem){ int n = a.Length; int i = 0; while(i < n && a[i] < elem) i ++; if(i>=n) return -1; if(a[i] == elem) return i; else return -1; } 2 4 5 8 9 查找7
设要查找的数据元素在数据元素集合中出现的概率均相等,则有序序列的顺序查找算法查找成功时的平均香查找长度ASL成功为:ASL成功=(1+n) /2查找失败时的平均查找长度ASL失败为:ASL失败~n/2
设要查找的数据元素在数据元素集合中出现的概率均相 等,则有序序列的顺序查找算法查找成功时的平均查找长度 ASL成功为: ASL成功=(1+n)/2 查找失败时的平均查找长度ASL失败为: ASL失败 ≈n/2