一、排序知识

1. 排序概念

  略


二、排序知识扩展

1. 排序基础

知识扩展

  略

题目练习

Ⅰ:合并区间
题目描述

  输入一个区间的集合,请将重叠的区间合并。每个区间用两个数字比较,分别表示区间的起始位置和结束位置。例如,输入区间 [1,3],[4,5],[8,10],[2,6],[9,12],[15,18],合并重叠的区间之后得到 [1,6],[8,12],[15,18]。

题目分析

难度:
思路:

参考代码

Tips:-

2. 计数排序

知识扩展

  略

题目练习

Ⅰ:数组相对排序
题目描述

  输入两个数组 arr1 和 arr2,其中数组 arr2 中的每个数字都唯一,并且都是数组 arr1 中的数字。请将数组 arr1 中的数字按照数组 arr2 中的数字的相对顺序排序。如果数组 arr1 中的数字在数组 arr2 中没有出现,那么将这些数字按递增的顺序排在后面。假设数组中的所有数字都在 0 到 1000 的范围内。例如,输入的数组 arr1 和 arr2 分别是 [2,3,3,7,3,9,2,1,7,2] 和 [3,2,1],则数组 arr1 排序之后为 [3,3,3,2,2,2,1,7,7,9]。

题目分析

难度:
思路:

参考代码

Tips:-

3. 快速排序

知识扩展

  略

题目练习

Ⅰ:数组中第 k 大的数字
题目描述

  请从一个乱序数组中找出第 k 大的数字。例如,数组 [3, 1,2,4,5,5,6] 中第 3 大的数字是 5。

题目分析

难度:
思路:

参考代码

Tips:-

4. 归并排序

知识扩展

  略

题目练习

Ⅰ:链表排序
题目描述

  输入一个链表的头节点,请将该链表排序。例如,输入图 11.1(a) 中的链表,该链表排序后如图 11.1(b) 所示。
图 11.1

题目分析

难度:
思路:

参考代码

Tips:-

Ⅱ:合并排序链表
题目描述

  输入 k 个排序的链表,请将它们合并成一个排序的链表。 例如,输入 3 个排序的链表,如图 11.2(a) 所示,将它们合并之后得到的排序的链表如图 11.2(b) 所示。
图 11.2

题目分析

难度:
思路:

参考代码

Tips:-

三、章节小结

  略