1) 实现有序表的查找。 2) 用二叉链表作为存储结构,输入键值序列建立一棵二叉排序树,然后中序遍历这棵二叉树。 3) 分别用堆排序及快速排序算法,对待排序记录进行排序并输出排序结果。
时间: 2024-05-22 08:11:15 浏览: 110
1) 有序表的查找可以采用二分查找算法。具体步骤如下:
- 将有序表按照关键字从小到大排序。
- 初始化左指针low为0,右指针high为n-1,其中n为有序表的长度。
- 取中间位置mid=(low+high)/2的元素,将其与待查找的关键字进行比较。
- 若mid对应的元素的关键字等于待查找的关键字,则查找成功,返回该元素的位置。
- 若mid对应的元素的关键字大于待查找的关键字,则在左半部分继续查找,即high=mid-1。
- 若mid对应的元素的关键字小于待查找的关键字,则在右半部分继续查找,即low=mid+1。
- 重复步骤3到步骤6,直到low>high或者找到了待查找的元素。
2) 二叉排序树是一棵空树或者具有以下性质的二叉树:
- 若左子树不为空,则左子树上所有节点的值小于根节点的值。
- 若右子树不为空,则右子树上所有节点的值大于根节点的值。
- 左右子树都是二叉排序树。
根据二叉排序树的定义,输入键值序列建立二叉排序树的过程如下:
- 首先将第一个元素作为根节点。
- 从第二个元素开始,依次将元素插入到二叉排序树中。
- 插入时从根节点开始比较,若小于根节点则插入到左子树中,否则插入到右子树中。
中序遍历二叉排序树可以得到一个有序序列,具体步骤如下:
- 从根节点开始,递归遍历左子树。
- 访问根节点。
- 递归遍历右子树。
3) 堆排序算法的基本思想是将待排序序列构造成一个堆,然后依次将堆顶元素取出并放到一个新的有序序列中,直到堆为空。具体步骤如下:
- 将待排序序列构造成一个大根堆或者小根堆。
- 将堆顶元素取出并放到一个新的有序序列中。
- 将堆的最后一个元素放到堆顶,然后调整堆,使其重新成为一个堆。
- 重复步骤2和步骤3,直到堆为空。
快速排序算法的基本思想是选取一个基准元素,将序列分成两个部分,使左边的元素都小于等于基准元素,右边的元素都大于等于基准元素,然后递归地对左右两个部分进行排序。具体步骤如下:
- 选取一个基准元素。
- 将序列分成两个部分,使左边的元素都小于等于基准元素,右边的元素都大于等于基准元素。
- 递归地对左右两个部分进行排序。
排序结果可以通过输出有序序列来得到。
阅读全文