
本文共 2550 字,大约阅读时间需要 8 分钟。
���������
���������������
������������Heapsort���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������O(n log n)���������������������������������������������������
������������
���������������������������������������
���������������������������������������������������������������������������������������2*i + 1
������������������2*i + 2
���������������������������i
���������������������������
������������
������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������
���������������
- ���������������������������������������������������������������������������
- ���������������������������
- ���������������������������������������������������������������������������������������������������������������������
������������������
static void sort(int[] nums) { int n = nums.length; // ��������������������� MaxHeap(nums, n); // ������������������������������������ for (int i = n-1; i >= 0; i--) { swap(nums, 0, i); // ������������������������������������������������ MaxHeapFixedDown(nums, 0, i); }}static void swap(int[] nums, int p, int r) { int temp = nums[p]; nums[p] = nums[r]; nums[r] = temp;}
static void MaxHeap(int[] nums, int n) { for (int i = n/2-1; i >= 0; i--) { MaxHeapFixedDown(nums, i, n); }}static void MaxHeapFixedDown(int[] nums, int i, int n) { int left = 2*i + 1; int right = 2*i + 2; if (left >= n) { return; } int max = left; if (right < n && nums[left] > nums[right]) { max = right; } if (nums[i] >= nums[max]) { return; } swap(nums, i, max); MaxHeapFixedDown(nums, max, n);}
������������
- ������������������������������������������������������������������������������������������������������������������������
- ���������������������������������������������������������������������������������
���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������
发表评论
最新留言
关于作者
