Baham's Blog

Above all else, guard your heart.

《Building Java Programs》-查找与排序

查找是一种试图在数据集或数组中发现某一目标的操作。排序是使列表或数组中的元素按照自然顺序进行排列的一种操作。

  1. 一个比较器对象可以用来定义对对象进行比较的方法,从而使该对象的列表或数组可以按照多种不同的顺序进行排列。

  2. 实验分析是一种通过运行一个程序或算法来测定它的运行时间的方法。

  3. 算法分析是一种通过对算法的代码或伪代码进行分析以推测其效率的方法。

  4. 算法按照其复杂度不同被分为许多类,通常用大O表示法表示,比如线性算法复杂度可表示为O(N)。

  5. 顺序查找是一种对列表所有元素进行判断,直到发现目标值的线性O(N)查找算法。

  6. 二分查找通过复杂的将一个已经排好的数据减半的方法来查找所有的元素,它具有对数复杂度O(Log(N))。

  7. 选择排序(selection sort)是一种复杂度为O(N2)的排序方法,它通过反复查找未处理数据中最小的一个并把它放在数组所剩余的位置的最前端来完成对数组的排序工作。

  8. 归并排序算法(merge sort)的复杂度为O(N log(N)),通常用递归来实现,它反复的将处理的数组分成两半,在分别对两部分进行排序,最后再把所有经过排序的数组组合在一起。




The Original Link: http://baham.github.io/08_10_420.html
If you want to reprint it, please do under the CC BY-NC-SA 4.0

Comments