码迷,mamicode.com
首页 > 编程语言 > 详细

2、数据结构与算法之大O表示法

时间:2018-06-21 21:11:57      阅读:141      评论:0      收藏:0      [点我收藏+]

标签:二分查找   bsp   数据结构   nbsp   常见   log   结构   旅行   两种   

一、大O表示法

      大O表示法不是一种算法。它是用来表示一个算法解决问题的速度的快慢。一般我们描述一件事情完成的快慢是用时间描述的,比如说我完成一道计算题用了多少分钟。但算法的运算是很难用准确的时间来描述的,所以我们就用算法解决问题一共用了多少步来表示算法的快慢。

      用第一篇的两种查找方法来举例,简单查找我们要用列表中的每一个元素逐一去比较,如果有n个元素,那么简单查找最多需要n步找到数据(数据在列表末尾)。而二分查找一次只用中位数去作比较,当查找有n个元素的数组时,最多需要log2n次。

      用大O表示法表示两种算法的速度分别是:O(n),O(log2n).

      注意:1.大O表示法反映的是算法解决问题的最糟糕的情况;2.大O表示法表示的是:随着数据增多,算法解决问题的操作数的变化。

 

其它常见的大O表示法:

O(n) —— 简单查找

O(log2n) —— 二分查找

O(n!) —— 旅行商问题

 

二、旅行商问题

     如果有一个旅行商想要途径5个城市,他要计划一条这5个城市连接的最短线路,那么他就要计算(5×4×3×2×1=)120次才能找出最短的那条路线。同理,如果要途径n个城市,就要经过n!次计算才能找出最短线路。这个就是旅行商问题。

2、数据结构与算法之大O表示法

标签:二分查找   bsp   数据结构   nbsp   常见   log   结构   旅行   两种   

原文地址:https://www.cnblogs.com/lqxing1994/p/9208555.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!