zoukankan      html  css  js  c++  java
  • 快排_Java

    快排的原则就是选一个标准,然后每一个数据和这个标准对比,比这个标准大的放在左边,比这个标准小的放在右边。

    看代码:

    package com.logan.Algo;
    
    public class Main {
    
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            int [] array = {9,1,7,3,6,2,10,4};
            int n = array.length;
            QuickSort(array, 0, n-1);
            for(int i=0;i<n;i++) {
                System.out.println(array[i]);
            }
            
    
        }
        
        private static void QuickSort(int[] num, int left, int right) {
            // 如果left=right,即数组中只剩一个元素时,直接返回
            if(left>=right) {
                return;
            }
            // 设置最左边的元素为基准值
            int key = num[left];
            //数组中比key小的放在左边,比key大的放在右边
            int i = left;
            int j = right;
            while(i<j) {
                //j向左移动,直到碰到比key小的数
                while(num[j]>=key && i<j) {
                    j--;
                }
                //i向右移动,直到碰到比key大的数
                while(num[i]<=key && i<j) {
                    i++;
                }
                //i和j指向的元素交换
                if(i<j) {
                    int temp = num[i];
                    num[i] = num[j];
                    num[j] = temp;
                }
            }
            num[left] = num[i];
            num[i] = key;
            QuickSort(num, left, i-1);
            QuickSort(num, i+1, right);
        }
    
    }
  • 相关阅读:
    线程
    进程2
    进程
    socketserver
    黏包
    初始网络编程
    模块
    super
    mro c3算法
    日志固定格式
  • 原文地址:https://www.cnblogs.com/LoganChen/p/12449277.html
Copyright © 2011-2022 走看看