C++ 常见的排序算法包括如下:
-
冒泡排序(Bubble Sort)
-
选择排序(Selection Sort)
-
插入排序(Insertion Sort)
-
希尔排序(Shell Sort)
-
归并排序(Merge Sort)
-
快速排序(Quick Sort)
-
堆排序(Heap Sort)
-
计数排序(Counting Sort)
-
桶排序(Bucket Sort)
-
基数排序(Radix Sort)
来看看对于选择排序的一些介绍:
- 初始状态: 首先,将待排序的数组分为两部分:已排序部分和未排序部分。初始时,已排序部分为空,整个数组都是未排序部分。
- 选择最小元素: 在未排序部分中找到最小的元素,并记录其下标。
- 交换位置: 将找到的最小元素与未排序部分的第一个元素进行交换,即将最小元素放到已排序部分的末尾。
- 增加已排序部分: 将已排序部分的末尾指针向后移动一个位置,表示已排序部分增加了一个元素。
- 重复步骤2到4: 重复执行以上步骤,直到未排序部分为空,即所有元素都已经放到已排序部分,排序完成。
补充说明:
这种算法的关键在于每次在未排序部分中选择最小的元素放到已排序部分的末尾,通过不断地增加已排序部分的长度来完成排序。选择排序的时间复杂度为 O(n^2),因为它在每个元素的位置上执行了一个最小值查找。虽然选择排序的时间复杂度较高,但是由于它的实现简单,对于小规模的数据集是一个有效的排序算法。
看一看例题1:
题目描述
给出 N(1 < N < 100)N(1<N<100) 个人的语文成绩,请按成绩高低排序后输出。
输入描述
第 11 行:一个整数 NN。
第 22 行ÿ