• 排序—快速排序


    此基本代码来源于网络并作稍许修改

     首先以最后一个数字point作为标准,把小于point的数字放在point的左面,大于point的放在右边,此时得出point的位置q,然后再一次以q为分界线,分而治之。

    package com.ufida.practice.suanfa.sort;
    
    public class QuickSoft {
    
        public static void main(String[] args) {
            
            QuickSoft ms = new QuickSoft();
            int len = 10;
            int a[] = { 5, 1, 2, 9, 10, 0, 8, 4, 7, 6 };
            ms.qsort(a, 0, len - 1);
            System.out.println("排序后的数组如下:");
            for (int i : a)
                System.out.println(i);
        }
    
        public void qsort(int a[], int p, int r) {
            if (p < r) {
                int q = partition(a, p, r);
                qsort(a, p, q - 1);
                qsort(a, q + 1, r);
            }
        }
    
        private int partition(int a[], int p, int r) {
            int point = a[r];
            int index = p;
            for (int i = index; i < r; ++i) {
                if (a[i] - point <= 0) {
                    swap(a, index++, i);
                }
            }
            swap(a, index, r);
            return index;
        }
    
        private void swap(int a[], int i, int j) {
            int tmp = a[i];
            a[i] = a[j];
            a[j] = tmp;
        }
    
    }
    因为年轻,所有没有失败。
  • 相关阅读:
    【微服务架构】SpringCloud之Ribbon
    SpringCloud之Eureka(注册中心集群篇)
    Eureka简介
    两行代码 搞定计数
    HBase详细概述
    电商项目介绍---说的很好
    面试:----Nginx的一理解
    redis介绍
    Linux操作系统介绍
    什么是Solr
  • 原文地址:https://www.cnblogs.com/wangchy0927/p/2845760.html
Copyright © 2020-2023  润新知