摘要: 快速排序的工作原理 1,从数组中选择一个元素,这个元素被称为基准值(pivot)。 2,接下来,找出比基准值小的元素以及比基准值大的元素。这被称为分区(partitioning)。 现在有:  一个由所有小于基准值的数字组成的子数组; 基准值; 一个由所有大于基准值的数组组成的子数组。 3, 阅读全文
posted @ 2019-05-30 17:35 Chris,Cai 阅读(655) 评论(0) 推荐(0) 编辑
摘要: 选择排序:每次选择一个最小的放入到一个新的数组或者列表中,以此来排序,放入到新数组的元素在原来的数组中要删除。 需要检查的元素数越来越少随着排序的进行,每次需要检查的元素数在逐渐减少,最后一次需要检查的元素都只有一个。既然如此,运行时间怎么还是O(n2)呢?这个问题问得好,这与大O表示法中的常数相关 阅读全文
posted @ 2019-05-30 13:50 Chris,Cai 阅读(202) 评论(0) 推荐(0) 编辑
摘要: #!/usr/bin/env python # -*- coding: utf-8 -*- # O(logn) ' binary_search ' __author__ = 'chris' import random import string def binary_search(list,item): low = 0 high = len(list) - 1 whi... 阅读全文
posted @ 2019-05-30 11:02 Chris,Cai 阅读(152) 评论(0) 推荐(0) 编辑
摘要: 大O表示法 指出了算法有多快。例如,假设列表包含n个元素。简单查找需要检查每个元素,因此需要执行n次操作。使用大O表示法,这个运行时间为O(n)。单位秒呢?没有——大O表示法指的并非以秒为单位的速度。大O表示法让你能够比较操作数,它指出了算法运行时间的增速。 大O 表示法指出了最糟情况下的运行时间假 阅读全文
posted @ 2019-05-30 09:46 Chris,Cai 阅读(390) 评论(0) 推荐(0) 编辑