zoukankan      html  css  js  c++  java
  • Java使用快速排序法对数组进行排序

     1 package com.yzy.test;
     2 
     3 public class Test {
     4 
     5     /**
     6      * @param args
     7      */
     8     public static void main(String[] args) {
     9         int[] array = { 43, 64, 21, 6565, 3424, 22, 6523, 345 };
    10         ArraySort(array, 0, array.length - 1);
    11         for (int i : array) {
    12             System.out.print(i + " ");
    13         }
    14     }
    15 
    16     // 快速排序方法
    17     private static void ArraySort(int[] array, int lowIndex, int highIndex) {
    18         int low = lowIndex;
    19         int high = highIndex;
    20         int mid;
    21         if (lowIndex < highIndex) {
    22             while (low <= high) {
    23                 mid = array[(lowIndex + highIndex) / 2];
    24                 while ((low < highIndex) && (array[low] < mid)) {
    25                     ++low;
    26                 }
    27                 while ((high > lowIndex) && (array[high] > mid)) {
    28                     --high;
    29                 }
    30                 if (low <= high) {
    31                     wrap(array, low, high);
    32                     ++low;
    33                     --high;
    34                 }
    35             }
    36             if (low < highIndex) {
    37                 ArraySort(array, low, highIndex);
    38             }
    39             if (high > lowIndex) {
    40                 ArraySort(array, lowIndex, high);
    41             }
    42         }
    43 
    44     }
    45 
    46     // 交换数组元素
    47     private static void wrap(int[] array, int low, int high) {
    48         // TODO Auto-generated method stub
    49         int temp = array[low];
    50         array[low] = array[high];
    51         array[high] = temp;
    52     }
    53 }

    技术要点:快速排序是对气泡排序的一种改进,其排序速度相对较快。基本思想是:通过一趟排序将要排序数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据小,然后再按此方法对这两部分数据分别进行快速排序。整个排序过程可以递归进行,以此是整个数据变成有序序列。

  • 相关阅读:
    你了解幻读吗?
    http面试准备
    DNS域名解析过程,域名的认识
    ajax实现用户登陆,退出,java做后端
    serialize()与serializeArray()
    jquery中Json操作
    jquery字符串操作
    理解jQuery的$.extend与$.fn.extend
    HTML之间互相传参
    解决topjui中工具栏按钮删除刷新从属表
  • 原文地址:https://www.cnblogs.com/yzyqqhr/p/5767780.html
Copyright © 2011-2022 走看看