归并排序
来源:互联网 发布:python算法教程 pdf 编辑:程序博客网 时间:2024/06/06 06:50
归并排序分两步:
1、分:二分法,让每个组元素都有序,只有每个组只有一个元素时才一定有序。
2、合:按照二分法分出的小组组合。
void Merge(int arr[], int tmp[], int startIndex, int midIndex, int endIndex){int i = startIndex;int j = midIndex + 1;int k = startIndex;while (i != midIndex + 1 && j != endIndex + 1){if (arr[i] > arr[j]){tmp[k++] = arr[j++];}else{tmp[k++] = arr[i++];}}while (i != midIndex + 1){tmp[k++] = arr[i++];}while (j != endIndex + 1){tmp[k++] = arr[j++];}for (int i = startIndex; i <= endIndex; ++i){arr[i] = tmp[i];}}void MergeSort(int arr[], int tmp[], int startIndex, int endIndex){if (startIndex < endIndex){int midIndex = (startIndex + endIndex) / 2;MergeSort(arr, tmp, startIndex, midIndex);MergeSort(arr, tmp, midIndex + 1, endIndex);Merge(arr, tmp, startIndex, midIndex, endIndex);}}
阅读全文
0 0
- 归并排序-归并排序
- 归并和归并排序
- 归并与归并排序
- 归并排序
- 归并排序
- 归并排序
- 归并排序
- 归并排序
- 归并排序
- 排序::归并
- 归并排序
- 归并排序
- 归并排序
- 归并排序
- 归并排序
- 归并排序
- 归并排序
- 归并排序
- printf
- golang基础-数组、切片创建_内存_底层实现_修改值_拷贝_循环、string与切片
- LeetCode 1. Two Sum
- mysqldump,数据备份与恢复
- 使用BigInteger来处理权限问题,
- 归并排序
- 自定义popWindow布局
- Map的使用
- STM32 模拟 I2C
- depth estimation 深度估计
- python学习之Strings
- 不同环境下python的编辑
- 计算机网络-数据链路层Data Link Layer学习笔记
- Shell笔记