顺序查找是针对无序序列的一种最简单的查找方式。
查找原理
顺序查找的原理很简单,就是遍历整个列表,逐个进行记录的关键字与给定值比较,若某个记录的关键字和给定值相等,则查找成功,找到所查的记录。如果直到最后一个记录,其关键字和给定值比较都不等时,则表中没有所查的记录,查找失败。
时间复杂度是O(n)。
下面是顺序查找的算法实现代码。
C#版:
namespace SequenceSearch.CSharp { class Program { static void Main(string[] args) { List<int> list = new List<int> { 50, 10, 90, 30, 70, 40, 80, 60, 20 }; Console.WriteLine("********************顺序查找******************** "); Display(list); int result = SequenceSearch(list, 30); if (result != -1) Console.WriteLine("30在列表中的位置是:{0}", result); else Console.WriteLine("对不起,列表中不存在该元素!"); Console.ReadKey(); } /// <summary> /// 顺序查找 /// </summary> /// <param name="list">待查列表</param> /// <param name="key">关键字</param> /// <returns>返回关键字在列表中的位置</returns> public static int SequenceSearch(List<int> list, int key) { //遍历查找列表 for (int i = 0; i < list.Count; i++) { //找到该记录,返回位置序号 if (list[i] == key) return i; } //没有找到 return -1; } private static void Display(IList<int> list) { Console.WriteLine(" **********展示结果********** "); if (list != null && list.Count > 0) { foreach (var item in list) { Console.Write("{0} ", item); } } Console.WriteLine(" **********展示完毕********** "); } } }
程序运行结果如图: