线性表的归并排序
来源:互联网 发布:js去掉前面的空格 编辑:程序博客网 时间:2024/06/05 01:12
public static int[] sort(int[] nums, int low, int high) { int mid = (low + high) / 2; if (low < high) { // 左边 sort(nums, low, mid); // 右边 sort(nums, mid + 1, high); // 左右归并 merge(nums, low, mid, high); } return nums; } public static void merge(int[] nums, int low, int mid, int high) { int[] temp = new int[high - low + 1]; int i = low;// 左指针 int j = mid + 1;// 右指针 int k = 0; // 把较小的数先移到新数组中 while (i <= mid && j <= high) { if (nums[i] < nums[j]) { temp[k++] = nums[i++]; } else { temp[k++] = nums[j++]; } } // 把左边剩余的数移入数组 while (i <= mid) { temp[k++] = nums[i++]; } // 把右边边剩余的数移入数组 while (j <= high) { temp[k++] = nums[j++]; } // 把新数组中的数覆盖nums数组 for (int k2 = 0; k2 < temp.length; k2++) { nums[k2 + low] = temp[k2]; } }
- 时间复杂度:O(n*log2n)
- 空间复杂度O(n)
- 稳定排序
0 0
- 线性表的归并排序
- 线性表的归并
- 线性表的归并
- 线性算法 排序之归并
- 数据结构 p25-26 算法实现 线性表的查找与归并排序2
- 数据结构 线性表 顺序表的归并
- 数据结构 线性表 单链表的归并
- 有序线性表的归并算法
- 线性表-归并算法
- 归并两个线性表
- 线性表归并运算
- 链表的归并排序
- 链表的归并排序
- 链表的归并排序
- 链表的归并排序
- 链表的归并排序
- 链表的归并排序
- 链表的归并排序
- 【第三周】第三章习题3.7
- python3.4爬虫——urllib等模块的引用
- 求单链表的长度(可能有环)
- 38. Count and Say
- GDB调试
- 线性表的归并排序
- Tomcat version 6.0 only supports J2EE 1.2, 1.3, 1.4, and Java EE 5 Web modules
- 【神经网络与深度学习】卷积神经网络-进化史:从LeNet到AlexNet
- OC-检测UITextView输入内容字数加限制
- 道客web前端开发实习生,电话面试问题
- Java Study 04
- google hacking 常用语句整合
- kali linux 2016.2 live usb persistence 制作
- 华为OJ基础第四题 漂亮的名字