heap sort java
2013-09-15 20:12
162 查看
public class Sort { private static void sink(int[] a,int k,int N) { while (2 * k <= N) { int j = 2 * k; if (j < N && less(a,j,j+1)) j++; if (!less(a,k,j)) break; exch(a,k,j); k = j; } } public static void sort(int[] a) { int N = a.length; for (int k = N / 2; k >= 1 ; k--) sink(a,k,N); while (N > 1) { exch(a,1,N); sink(a,1,--N); } } private static boolean less(int[] a, int i, int j) { return a[i - 1] < a[j - 1]; } private static void exch(int[] a,int i,int j) { int temp = a[i - 1]; a[i - 1] = a [j - 1]; a[j - 1] = temp; } public static void main(String[] args) { int a[] = {9,9,8,7,6,5,4,3,2,4,1,4,5}; sort(a); for (int i:a) System.out.print(i); } }
相关文章推荐
- 堆排序Heap Sort——浅显易懂+Java实现
- Java实现HEAPSORT堆排序算法
- Java实现堆排序(Heapsort)实例代码
- [Java--常见排序算法]--堆排序 (Heap Sort)
- java.sql.SQLException: ORA-04030: 在尝试分配 64528 字节 (sort subheap,sort key)时进程内存不足?
- 堆排序算法(Heap Sort) Java实现
- Java实现---堆排序 Heap Sort
- 堆排序(Heapsort)之Java实现
- Java排序算法--堆排序(HeapSort)
- HeapSort的java语言实现
- 堆排序HeapSort(Java)
- heap sort algorithm 堆排序算法 java实现
- 堆排序(Heapsort)之Java实现
- 堆排序(Heap Sort)原理及Java实现
- 堆排序(Heapsort)之Java实现
- [转载]堆排序(HeapSort) Java实现
- java 数据结构之堆排序(HeapSort)详解及实例
- heapSort_by_Java
- 堆排序(Heapsort)之Java实现
- 堆排序Heap Sort——浅显易懂+Java实现