当前位置:   article > 正文

JAVA数据结构 08.排序算法(2) 快速排序和归并排序的算法思路图解和代码实现_java给出一个初始序列,分别用归并排序和快速排序两种分治法将所给序列变换为有序

java给出一个初始序列,分别用归并排序和快速排序两种分治法将所给序列变换为有序

JAVA数据结构 08.排序算法

2. 八大排序算法 实现 解析 和优化

2.5 快速排序

算法介绍:快速排序是对冒泡排序的一种改进。

算法思想

  • 设置两个索引指针指向待排序数据的头和尾;
  • 通过一趟排序将要排序的数据分割成两部分(将数组最左边的数作为基准点);
  • 通过移动头尾指针,寻找逆序的两个数字(头指针值比基准点大和尾指针比基准点小),对两个数字进行交换,实现第一轮交换。一次移动头尾指针,交换所有逆序数,当头指针和尾指针重合时,循环结束
  • 当一轮循环结束后,使得头(尾)指针前一部分的所有数据都比另外一部分的所有数据要小
  • 然后再按此方法对着两部分数据分别再进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。

算法图解

在这里插入图片描述

代码实现

import java.util.Arrays;

public class QuickSort {
   
    public  static void main(String args[]){
   
        int[] arr = {
   -9,78,0,23,-567,70,-1,900,4561};
        quickSort(arr,0,arr.length-1);
        System.out.println(Arrays.toString(arr));
    }

    public static void quickSort(int[] arr,int low,int high){
   
        int i,j,temp,swap;
        if(low>high){
   
            return;
        
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/703537
推荐阅读
相关标签
  

闽ICP备14008679号