[笔记]《算法图解》第一章 算法简介
大O表示法 - 大O表示法指出了算法有多快,例如列表包含n个元素。简单查找需要检查每个元素,因此需要执行n次操作。 - 大O表示法指的并非以秒为单位的速度。大O表示法能够让你比较操作数,它指出了算法运行的增速。 - 二分查找需要执行logn次操作,使用大O表示法,运行时间O(logn)。 - 简单查找的运行时间总是O(n),但是大O表示法说的是最糟糕的情形。因此简单查找的运行时间不超过O(n)。 常见的大O运行时间 - O(logn)对数时间,常见算法:二分查找。 - O(n)线性时间,常见算法:简单查找。 - O(n*logn),快速排序。 - O(n^2),选择排序。 - O(n!),旅行商算法。 算法绘制网格所需要的时间: 二分算法(python实现) #!/usr/bin/env python3 # -*- coding: utf-8 -*- \""" @desc: binary search @author: Bingo Cai \""" def binary_search(list, item): low = 0 high = len(list) - 1 while low <= high: mid = int((low + high)/2) guess = list[mid] if guess == item: return mid if guess > item: