首页 > 其他分享 >快速排序

快速排序

时间:2022-12-18 00:44:05浏览次数:38  
标签:scanner int out System new 排序 快速 Scanner

时间开销:O(logn),空间开销:0(原地分治)

import java.util.Scanner;
public class Main{
    public static void main(String[] args){
        Scanner scanner=new Scanner(System.in);
        System.out.println("数组长度:");
        int n=scanner.nextInt();
        int[] q=new int[n];
        System.out.println("数组:");
        for(int i=0;i<n;i++)
        {
            q[i]=scanner.nextInt();
        }
        quickSort(q,0,n-1);
        System.out.print("排序后数组:");
        for(int x:q){
            System.out.print(x+" ");
        }
    }
    static void quickSort(int[] q,int l,int r)
    {
        if(l>=r) return;
        int i=l-1,j=r+1,m=q[l+r>>1];
        while(i<j){
            do i++; while(q[i]<m);
            do j--; while(q[j]>m);
            if(i<j) {
                int tmp=q[i];
                q[i]=q[j];
                q[j]=tmp;
            };
        }
        quickSort(q,l,j);quickSort(q,j+1,r);
    }
}

 

标签:scanner,int,out,System,new,排序,快速,Scanner
From: https://www.cnblogs.com/lovxn/p/16989888.html

相关文章

  • linux 安装运行redis与Spring连接配置,10分钟快速入门
    linux是一方面是开源免费的,另一面其长时间运行的可靠性远高于其他系统,所以是目前国内绝大多数公司部署项目的首选。其中部署项目往往需要配套诸如Mysql、maven、redis等等......
  • 选择排序(简单选择排序,堆排序)
    学习时间2022.12.17选择排序基本概念简单选择排序第1次,遍历整个数组,找到最小的数字,将其与第一位进行调换;第2次,遍历除以排序好的第1个数,遍历后面所有数字,找到最小的,与......
  • [机器学习] Yellowbrick使用笔记1-快速入门
    Yellowbrick是一个机器学习可视化库,主要依赖于sklearn机器学习库,能够提供多种机器学习算法的可视化,主要包括特征可视化,分类可视化,回归可视化,回归可视化,聚类可视化,模型选择......
  • java数据结构与算法(day2)--简单排序
    模式:设计api实现api简单排序举例(商品排序)1.1Comparable接口介绍(排序算法更有通用性:对象排序)创建对象,并且生成豆子。创建Comparable接口1packagecn.itcast.algor......
  • redis底层数据结构之快速列表(quicklist)
    快速列表(quicklist)redis3.2版本之前,List类型数据使用的底层数据结构是压缩列表(ziplist)或双向链表(linkedlist),当列表元素个数比较少并且每个元素占用空间比较小时使......
  • 插入排序(直接插入,折半插入,希尔排序)
    学习时间2022.12.17插入排序基本概念直接插入排序要理解直接插入排序看这篇解学武插入排序算法及C语言实现将第一待排序序列第一个元素看做一个有序序列,把第二个元素......
  • 三步快速搭建Typora图床(SM.MS+PicGo)
    三步快速搭建Typora图床(基于SM.MS+PicGo)前言在有些同学使用Typora的过程中,会发现Typora不像Word一样,在文档脱离本机后依然正常显示图片,自己的tyopora文件在发给别人就......
  • 快速傅里叶变换
    {据说FFTW(FastestFourierTransformintheWest)是世界上最快的FFT。为了详细了解FFTW以及为编程方便,特将用户手册看了一下,并结合手册制作了以下FFTW中文参考。其中......
  • ElasticSearch系列---【Es的快速入门文档】
    Es的快速入门文档1.对比数据库理解ElasticSearch是面向文档型数据库,一条数据在这里就是一个文档。 注意:从ElasticSearch6.X开始,一个Index下只能包含一个Type,因此,在Ela......
  • 数据结构之 插入排序
    插入排序:包括:​​直接插入排序​​,二分插入排序(又称折半插入排序),链表插入排序,​​希尔排序​​(又称缩小增量排序)。插入排序算法思路假定这个​​数组​​的序是排好的,......