排序算法
约 266 字小于 1 分钟
2025-05-16
什么是排序
插入排序
直接插入排序
折半插入排序
希尔插入排序
交换排序
冒泡排序
快速排序
选择排序
简单选择排序
堆排序
构建大根堆算法
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
void max_heapify(int arr[], int len, int i){
int largest = i;
int left = 2 * i;
int right = 2 * i + 1;
if(left < len && arr[left] > arr[largest]){
largest = left;
}
if(right < len && arr[right] > arr[largest]){
largest = right;
}
if(largest != i){
swap(&arr[largest], &arr[i]);
max_heapify(arr, len, largest);
}
}
void build_max_heap(int arr[], int n) {
for (int i = n / 2 - 1; i >= 0; i--) {
maxHeapify(arr, n, i);
}
}
归并排序、基数排序和计数排序
归并排序
基数排序
计数排序
各种内部排序算法的比较和应用场景
内部排序算法的比较
内部排序算法的应用场景
外部排序
什么是外部排序
外部排序的方法
多路平衡归并和败者树
置换-选择排序
最佳归并树
更新日志
2025/6/21 13:46
查看所有更新日志
版权所有
版权归属:代码・生 活・THINKING