标签:
顺序查找是针对无序序列的一种最简单的查找方式。
查找原理
顺序查找的原理很简单,就是遍历整个列表,逐个进行记录的关键字与给定值比较,若某个记录的关键字和给定值相等,则查找成功,找到所查的记录。如果直到最后一个记录,其关键字和给定值比较都不等时,则表中没有所查的记录,查找失败。
时间复杂度是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("********************顺序查找********************\n");
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("\n**********展示结果**********\n");
if (list != null && list.Count > 0)
{
foreach (var item in list)
{
Console.Write("{0} ", item);
}
}
Console.WriteLine("\n**********展示完毕**********\n");
}
}
}
程序运行结果如图:
标签:
原文地址:http://www.cnblogs.com/nxxshxf/p/5169085.html