堆排序
来源:互联网 发布:apache文件服务器搭建 编辑:程序博客网 时间:2024/04/30 13:09
class HeapSort {//堆排序public static void heapSort(int[] arr){buildMaxHeap(arr);int heapSize=arr.length-1;for (int i=heapSize;i>0 ;i-- ){swap(arr,0,i);heapSize--;maxHeapfy(arr,0,heapSize);}}//建堆public static void buildMaxHeap(int[] arr){for (int i=arr.length/2;i>=0 ;i-- ){maxHeapfy(arr,i,arr.length-1);}}//调整public static void maxHeapfy(int[] arr,int i,int heapSize){int left=2*i;int right=2*i+1;int largest=0;if (left<=heapSize&&arr[left]>arr[i]){largest=left;}elselargest=i;if (right<=heapSize&&arr[right]>arr[largest]){largest=right;}if (largest!=i){swap(arr,largest,i);maxHeapfy(arr,largest,heapSize);}}public static void swap(int[] arr,int a,int b){int temp=arr[a];arr[a]=arr[b];arr[b]=temp;}public static void main(String[] args) {int[] arr={7,8,5,4,3,2};heapSort(arr);for (int i=0;i<arr.length ;i++ ){System.out.println(arr[i]);}}}
0 0
- 堆及堆排序
- 堆/堆排序特点
- 【二叉堆、堆排序】
- 二叉堆 & 堆排序
- 二叉堆 & 堆排序
- 堆与堆排序
- 堆与堆排序
- 堆与堆排序
- 堆与堆排序
- 堆与堆排序
- 堆与堆排序
- 堆和堆排序
- 堆排序(最大堆)
- 堆和堆排序
- 堆和堆排序
- 堆及堆排序
- 堆和堆排序
- 堆与堆排序
- 编程题--给定一个字符串数组,判断每个字符出现次数
- 蓝桥杯 煤球数目
- 浅谈Promise
- 流
- Virtualbox 与VMWare中网络模式区别
- 堆排序
- 手机触摸屏的JS事件
- window.event
- 微服务架构:理解什么是微服务
- Java.面向对象.内存管理
- Media change: lase insert the disc labled
- 资源视图在另一个编辑器中打开的原因
- Ionic2实现: 下拉刷新和上拉加载
- Vi,Java,Ant和Junit的自学报告