• 堆排序


     1 /**
     2  * 堆排序
     3  * 
     4  * @author Administrator
     5  *
     6  */
     7 public class HeapSort {
     8 
     9     public int[] heapSort(int[] array) {
    10         
    11         int i;
    12 
    13         // 1.将无序序列构造成一个大顶堆
    14         for (i = array.length / 2 - 1; i >= 0; i--) {
    15             heapAdjust(array, i, array.length - 1);
    16         }
    17 
    18         // 2.交换堆顶元素与最后一个元素后,然后重新构造大顶堆,重复这个过程
    19         for (i = array.length - 1; i > 0; i--) {
    20             swap(array, 0, i);
    21             heapAdjust(array, 0, i - 1);
    22         }
    23 
    24         return array;
    25     }
    26 
    27 
    28     public void heapAdjust(int[] array, int s, int m) {
    29 
    30         int temp, j;
    31         temp = array[s];
    32         
    33         for (j = 2 * s + 1; j <= m; j = j * 2 + 1) {
    34             
    35             if (j < m && array[j] < array[j + 1]) {
    36                 ++j;
    37             }
    38             
    39             if (temp >= array[j]) {
    40                 break;
    41             }
    42             
    43             array[s] = array[j];
    44             s = j;
    45         }
    46 
    47         array[s] = temp;
    48     }
    49 
    50     public void swap(int[] array, int i, int j) {
    51 
    52         int temp;
    53         temp = array[i];
    54         array[i] = array[j];
    55         array[j] = temp;
    56     }
    57 }
  • 相关阅读:
    Ajax
    事件委托
    事件对象
    js的基础类型与引用类型
    Javascript和HTML dom
    用jQuery写的最简单的表单验证
    初学HTML5的一点理解
    CMake 入门
    centos7上rpm安装wkhtmltopdf
    centos7 下安装思源黑体字体
  • 原文地址:https://www.cnblogs.com/jiangyi-uestc/p/5882839.html
Copyright © 2020-2023  润新知