算法、语言和程序
线性表查找方法:
- 顺序查找。算法简单,但效率低
- 折半查找。比较次数少,速度快,但要求是有序表
- 分块查找。主要用于分块有序表查找
堆排序
- 是一种选择排序
- 每次从待排序的记录中选择出关键字最小或最大的记录,顺序放在已排序的记录序列最后,直到全部排完
- 时间复杂性O(nLog2n),只需要一个附加存储节点
- 适合对较大文件排序
排序算法
- 插入排序分为直接插入排序和希尔排序
- 直接插入排序,把数组A[n]中待排序的n个元素看成为一个有序表和无序表,开始时有序表中只包含一个元素A[n],无序表中只包含n-1个元素,排序过程中每次从无序表中取出第一个元素,把它插入有序表中适当位置,使之成为新的有序表,这样经过n次插入后,有序表中就包含了排好序的全部n个元素。
- 希尔排序是对直接插入排序的改进,是一个分组进行直接插入排序的过程。
- 交换排序主要包括冒泡排序和快速排序
- 冒泡排序是通过相邻元素之间的比较和交换,使关键字较小的元素逐渐从底部移向顶部
- 快速排序,是首先从待排序区间取出一个元素作为比较的基准,进行一次划分,使区间前半部分只保留比基准元素关键字小或相等的元素,后半部分所有元素的关键字均大于等于基准元素的关键字,基准元素的当前位置即为排序后的最终位置,