广州北大青鸟计算机职业培训学校
互联网技术培训、软件技术培训、大数据培训、云计算培训、数据分析培训信息网
当前位置:网站首页 > 软件教程 > Java技术 > 正文

惠州什么是快速排序?_北大青鸟IT学校

作者:邓华发布时间:2021-06-14分类:Java技术浏览:996


导读:Java是现在非常主流的编程语言之一,很多人想转行学习IT,首选Java语言。那么,什么是快速排序?下面就让我们一起来看看惠州北大青鸟老师是怎么回答的。

Java是现在非常主流的编程语言之一,很多人想转行学习IT,首选Java语言。那么,什么是快速排序?下面就让我们一起来看看惠州北大青鸟老师是怎么回答的。

一、基本思想

选择一个基准元素,通常选择第一个元素或者最后一个元素,通过一趟扫描,将待排序列分成两部分,一部分比基准元素小,一部分大于等于基准元素,此时基准元素在其排好序后的正确位置,然后再用同样的方法递归地排序划分的两部分。

二、代码实现

  1. /**

  2.      * 打印数组内容

  3.      * 

  4.      * @param a

  5.      */

  6.     public static void saymsg(int[] src) {

  7.         for (int i = 0; i < src.length; i++) {

  8.             System.out.print(src[i]);

  9.             System.out.print(",");

  10.         }

  11.         System.out.println();

  12.     }





  13.     public static int getMiddle(int[] list, int low, int high) {

  14.         int tmp = list[low]; // 数组的第一个作为中轴

  15.         while (low < high) {

  16.             while (low < high && list[high] >= tmp) {

  17.                 high--;

  18.             }

  19.             list[low] = list[high]; // 比中轴小的记录移到低端

  20.             saymsg(list);

  21.             while (low < high && list[low] <= tmp) {

  22.                 low++;

  23.             }

  24.             list[high] = list[low]; // 比中轴大的记录移到高端

  25.             saymsg(list);

  26.         }

  27.         list[low] = tmp; // 中轴记录到尾

  28.         saymsg(list);

  29.         return low; // 返回中轴的位置

  30.     }





  31.     public static void quickSort(int[] list, int low, int high) {

  32.         if (low < high) {

  33.             int middle = getMiddle(list, low, high); // 将list数组进行一分为二

  34.             quickSort(list, low, middle - 1); // 对低字表进行递归排序

  35.             quickSort(list, middle + 1, high); // 对高字表进行递归排序

  36.         }

  37.     }





  38.     public static void main(String[] args) {

  39.         int[] src = { 49, 38, 65, 97, 76, 13, 27, 49, 78, 34, 12, 64, 5, 4, 62, 99, 98, 54, 56, 17, 18, 23, 34, 15, 35,

  40.                 25, 53, 51 };

  41.         System.out.println("原始数组排序:");

  42.         saymsg(src);

  43.         if (src.length > 0) { 

  44.             quickSort(src, 0, src.length - 1);

  45.         }

  46.     }

更多Java资讯关注网站动态,或者来惠州北大青鸟新方舟校区了解一下。

java3.png

Java

标签:惠州计算机JAVA软件开发惠州计算机Java软件开发惠州计算机JAVA培训惠州计算机JAVA软件开发学校惠州计算机Java软件开发培训JAVAJava软件开发北大青鸟IT计算机学校北大青鸟IT软件学校北大青鸟IT学校


Java技术排行
标签列表
网站分类
文章归档
最近发表