在C语言中,常见的排序方法有以下几种:
-
冒泡排序(Bubble Sort):通过相邻元素的比较和交换,每次将最大或最小元素冒泡到数组的末尾。
-
选择排序(Selection Sort):每次从未排序的部分选择出最小(或最大)的元素,放到已排序部分的末尾。
-
插入排序(Insertion Sort):将未排序的元素逐个插入到已排序部分的正确位置,直到全部元素都排序完毕。
-
快速排序(Quick Sort):通过分割和递归的方式,将数组不断地划分为两个子数组,其中一个子数组的所有元素都小于另一个子数组的所有元素。
-
归并排序(Merge Sort):通过递归地将数组划分为两个子数组,对子数组进行排序,然后将已排序的子数组进行合并。
-
堆排序(Heap Sort):通过构建最大堆或最小堆,将堆顶元素与末尾元素交换,然后对剩余元素重新调整堆,直到所有元素都排序完毕。
-
希尔排序(Shell Sort):将数组按照一定的间隔分组,对每个分组进行插入排序,然后逐渐缩小间隔,再次进行插入排序,直到间隔为1,完成最后的排序。
-
计数排序(Counting Sort):通过统计元素的频率,确定每个元素在排序后的位置。
-
桶排序(Bucket Sort):将元素根据大小分配到不同的桶中,对每个桶进行排序,然后将所有桶中的元素按顺序合并。
-
基数排序(Radix Sort):将元素按照位数进行排序,先按个位数排序,再按十位数排序,依次类推。