美文网首页
第五章 搜索与排序

第五章 搜索与排序

作者: 随风飘扬的小哥哥 | 来源:发表于2018-02-08 08:47 被阅读0次

知识点:

1. 线性搜索。

Python自带函数 in, 线性搜索,及遍历一遍输入数组,直到找到特定所需元素。最糟情况复杂度O(n)。

排序过的序列搜索,Listing 5.2,复杂度没有变化,多加入一步判断。

寻找最小值,复杂度也一样。

2. 二分查找

分治思想。排序后的线性搜索虽然会轻微的提升算法复杂度,但效果不明显。 复杂点在于首先得对序列排序后才能进行二分查找。

复杂度为O(logn),如4.12节讲,每次输入如果是减半的话,复杂度为log。

3. 冒泡排序 

Python内置sort(),但使用范围很窄。每一趟会将最小或最大的元素“浮”到顶端,最终达到完全有序。仅仅比较相邻两个元素,若后一个大于前一个就互换,第一轮必定会把最大的放到最后,之后每轮比较的元素个数递减1。每一次外循环总会把当前序列中的最大值放到当前序列的最后。复杂度为O(n平方)。由于循环的嵌套和交换,效率低下。考虑若序列已经排序,则任然需要一样的复杂度,因为方法不知道已经排序了的。

书中方法没有利用到pythonic

4. 选择排序

每次找到未排序中最小的(最大的也行)元素的位置,找到后与该位置与未排序序列的第一个元素交换值,直到该序列成为有序序列。初始状态整个序列为无序序列,每次交换都使有序序列的长度加一,无序序列的起始位置后移一位。选择排序的平均时间复杂度为O(n^2)。

5. 插入排序

每一步将一个待排序的记录,插入到前面已经排好序的有序序列中去,直到插完所有元素为止。

相关文章

  • 第五章 搜索与排序

    知识点: 1. 线性搜索。 Python自带函数 in, 线性搜索,及遍历一遍输入数组,直到找到特定所需元素。最糟...

  • 排序与搜索:搜索

    搜索 搜索是在一个项目集合中找到一个特定项目的算法过程。搜索通常的答案是真的或假的,因为该项目是否存在。 搜索的几...

  • 排序与搜索

    排序算法(英语:Sorting algorithm)是一种能将一串数据依照特定顺序进行排列的一种算法。 排序算法的...

  • 排序与搜索

    排序算法: 一种能将一串数据依照特定顺序进行排列的一种算法 常见排序算法效率的比较 排序算法的实现 1. 冒泡排序...

  • 排序与搜索——快速排序

    快速排序 快速排序(英语:Quicksort),又称划分交换排序(partition-exchange sort)...

  • 排序与搜索——希尔排序

    希尔排序 希尔排序(Shell Sort)是插入排序的一种。也称缩小增量排序,是直接插入排序算法的一种更高效的改进...

  • 排序与搜索——冒泡排序

    排序与搜索 排序算法(英语:Sorting algorithm)是一种能将一串数据依照特定顺序进行排列的一种算法。...

  • 排序与搜索——选择排序

    选择排序 选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理如下:首先在未排序序列中找...

  • 排序与搜索:希尔排序

    希尔排序 希尔排序(Shell Sort)是插入排序的一种。也称缩小增量排序,是直接插入排序算法的一种更高效的改进...

  • 排序与搜索:冒泡排序

    冒泡排序 冒泡排序(英语:Bubble Sort)是一种简单的排序算法。它重复地遍历要排序的数列,一次比较两个元素...

网友评论

      本文标题:第五章 搜索与排序

      本文链接:https://www.haomeiwen.com/subject/airozxtx.html