查找和排序

查找和排序

查找算法有顺序查找、二分查找、哈希表查找、及二叉排序树查找。

不管用循环还是递归,都应能够写出完整正确的二分查找代码。

  1. 如果是要求在排序的数组(或者部分排序的数组)中查找一个数字或者统计某个数字出现的次数,都可以尝试用二分查找算法。
  2. 哈希表和二叉排序树查找的重点在于考察对应的数据结构而不是算法。哈希表最主要的优点是我们利用它能够在O(1)的时间内查找某一元素,是效率最高的查找方式;但其缺点是需要额外的空间来实现哈希表。
  3. 与二叉排序树查找算法对应的数据结构是二叉搜索树。

    排序算法有插入排序、冒泡排序、归并排序、快速排序等。

需要能够从额外空间消耗、平均时间复杂度和最差时间复杂度等方面比较他们的优缺点。
应能够写出快速排序的代码。

OC形式

1
2


思路

实现快速排序算法的关键在于先在数组中选择一个数字,接下来把数组中的数字分为两部分,比选择的数字小的数字移到数组的左边,比选择的数字大的数字移到数组的右边。