快速排序+时间测试(yyds)

package com.atguigu.sort;import com.sun.org.apache.xpath.internal.WhitespaceStrippingElementMatcher;import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Date;/*** @创建人 wdl* @创建时间 2021/3/22* @描述*/
public class QuickSort {public static void main(String[] args) {//[-9,78,0,23,-567,70]
//        int[] arr = {-9, 78, 0, 23, -567, 70,-1,-66,88};//测试快排的执行速度//创建一个80000个的随机数组int[] arr = new int[80000];for (int i = 0; i < 80000; i++) {arr[i] = (int) (Math.random() * 8000000);//生成一个[0,8000000)数}Date data1 = new Date();SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyy-MM-dd HH:mm:ss");String data1str = simpleDateFormat.format(data1);System.out.println("排序前的时间是=" + data1str);quickSort(arr,0,arr.length-1);Date data2 = new Date();String data2str = simpleDateFormat.format(data2);System.out.println("排序后的时间是=" + data2str);}public static void quickSort(int[] arr, int left, int right) {int l = left;//左下标int r = right;//右下标//pivot中轴int pivot = arr[(left + right) / 2];int temp=0;//临时变量,作为交换时使用//while循环的目的是让比pivot值小的放到左边//比pivot值大放到右边while (l < r) {//在pivot的左边一直找,找到一个大于等于pivot的值,才退出while (arr[l] < pivot) {l++;}//在pivot的右边一直找,找到一个小于等于pivot的值,才退出while (arr[r] > pivot) {r--;}//如果l>=r成立说明pivot的左右两的值,已经按照左边全部是小于等于pivot的值,// 右边全部都是大于等于pivot的值if(l>=r){break;}//交换temp=arr[l];arr[l]=arr[r];arr[r]=temp;//如果交换完后,发现这个arr[l]==pivot值相等--,前移if(arr[l]==pivot){r--;}//如果交换完后,发现这个arr[l]==pivot值相等++,前移if(arr[r]==pivot){l++;}}//如果l==r,必须l++,r--,否则会出现栈溢出if(l==r){l++;r--;}//向左递归if(left<r){quickSort(arr,left,r);}//向右递归if(right>l){quickSort(arr,l,right);}}}

结果展示

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/326864.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ssh根据姓名查询的时候报错java.lang.IndexOutOfBoundsException: Remember that

错误如下&#xff1a;java.lang.IndexOutOfBoundsException: Remember that ordinal parameters are 1-based!at org.hibernate.engine.query.ParameterMetadata.getOrdinalParameterDescriptor(ParameterMetadata.java:79)at org.hibernate.engine.query.ParameterMetadata.ge…

bs架构 erp 进销存_从应用架构看生鲜电商信息化建设

编辑导读&#xff1a;对于生鲜电商来说&#xff0c;信息化建设是很重要的一环&#xff0c;所有的业务开展都离不开信息化的支持。本文作者讲从应用架构角度出发&#xff0c;对生鲜电商信息化建设展开分析&#xff0c;希望对你有帮助。一、背景语言共识之前介绍了从业务架构看生…

java中int转成String位数不足前面补零 java格式化2位数不足补零

最近我又搜了关于String.format的东西&#xff0c;其实有自带的补零方法&#xff0c; String.format("%06d",12);//其中0表示补零而不是补空格&#xff0c;6表示至少6位

分布式 | Dubbo 架构设计详解

转载自 分布式 | Dubbo 架构设计详解 Dubbo是Alibaba开源的分布式服务框架&#xff0c;它最大的特点是按照分层的方式来架构&#xff0c;使用这种方式可以使各个层之间解耦合&#xff08;或者最大限度地松耦合&#xff09;。从服务模型的角度来看&#xff0c;Dubbo采用的是一…

完成OSS.Http底层HttpClient重构封装 支持标准库

OSS.Http项目对于.Net Standard标准库的支持已经迁移完毕&#xff0c;OSS开源系列两个最底层的类库已经具备跨运行时支持的能力。由于OSS.Http类库是几年前我参照RestSharp的思路&#xff0c;完成的一个轻量型Http请求框架。由于时间较久底层使用的还是HttpWebRequest&#xff…

归并排序+思路分析

思路分析 代码实现 package com.atguigu.sort;import java.util.Arrays;/*** 创建人 wdl* 创建时间 2021/3/22* 描述*/ public class MergeSort {public static void main(String[] args) {int arr[]{8,4,5,7,1,3,6,2};int temp[]new int[arr.length];mergeSort(arr,0,arr.len…

java中判断 101-200 之间有多少个素数,并输出所有的素数

题目&#xff1a;判断 101-200 之间有多少个素数&#xff0c;并输出所有的素数 素数是什么&#xff1a; 质数又称素数。一个大于1的自然数&#xff0c;除了1和它自身外&#xff0c;不能被其他自然数整除的数叫做质数&#xff1b;否则称为合数。 那么题目的答案如下&#xff…

常数除以0的极限是什么_【极限】第四节 极限运算法则

定理 例题 极限运算法则就像加减乘除四则运算一样&#xff0c;是一种计算规则&#xff0c;那么极限也有属于它自己的一套计算规则。 极限运算法则的常用定理 定理1 两个无穷小的和是无穷小 有限个无穷小之和也是无穷小 定理2 有界函数与无穷小的乘积是无穷小 常数与无穷小的乘积…

mysql修改字段 新增字段

ALTER TABLE house change flag flag tinyint(2) DEFAULT 1 COMMENT 1自住 2出租 3空置 ; ALTER TABLE house change house_type house_type int(10) DEFAULT 1 COMMENT 房间类型1住宅、2公寓、3办公、4店铺、5酒店、6别墅、0其他; ALTER TABLE account_rule_config ADD rule…

用JAVASCRIPT实现静态对象、静态方法和静态属性

转载自 用JAVASCRIPT实现静态对象、静态方法和静态属性 Javascript语言的面向对象特征很弱&#xff0c;其他面向对象语言在创建类时只要使用关键字static即可指定类为静态类&#xff0c;Javascript没有提供static这样的关键字&#xff0c;要让Javascript也具有“静态”特性只…

归并排序+时间测试

package com.atguigu.sort;import java.text.SimpleDateFormat; import java.util.Arrays; import java.util.Date;/*** 创建人 wdl* 创建时间 2021/3/22* 描述*/ public class MergeSort {public static void main(String[] args) { // int arr[]{8,4,5,7,1,3,6,2};// …

Visual Studio 2017将于3月7日发布

继最近一连串候选发布版本之后&#xff0c;微软已经开始针对正式发布Visual Studio 2017做最后准备工作。微软已经宣布2017年3月7日会是VS2017官方发布时间。第一款VS软件问世于1997年&#xff0c;本次发布标志着产品20周年&#xff0c;这些年里包括了Visual J、Visual FoxPro、…

java中求5的阶乘

题目如上所示&#xff1a;java中求5的阶乘是多少&#xff1f; 什么事阶乘呢&#xff1f; 答&#xff1a;阶乘是基斯顿卡曼&#xff08;Christian Kramp&#xff0c;1760&#xff5e;1826&#xff09;于 1808 年发明的运算符号&#xff0c;是数学术语。 一个正整数的阶乘&#x…

java中判断数组中元素出现的次数

如题所示&#xff1a;有 20 个 0-9 之间的数字&#xff0c;并统计 0-9 这 10 个数字分别出现了多少次&#xff1f; 解答思路&#xff1a;声明两个数组&#xff0c;一个是需要判断元素出现次数的数组&#xff0c;另一个就是存放元素个数的数组&#xff0c;分别如下&#xff1a;…

SQL Server 急救包(First Responder Kit)入门教程

如果你的SQL Server数据库运行起来十分缓慢甚至逐渐停止了&#xff0c;恰巧又赶上了你的数据库管理员在休假&#xff0c;你又不知道该如何是好&#xff0c;那么这篇文章会帮助你从学习使用SQL Server急救包&#xff08;SQL Server First Responder Kit&#xff09;开始解决问题…

mybatis的$和#详解分析

MyBatis中#{}和${}的作用与区别_陈三千的博客-CSDN博客_mybatis${}有什么用 MyBatis中#{}和${}的作用与区别 MyBatis中#{}和${}的作用与区别_陈三千的博客-CSDN博客_mybatis${}有什么用 在mybatis中#和$的主要区别是&#xff1a;#传入的参数在SQL中显示为字符串&#xff0c;#方…

IE8浏览器缓存问题导致Ajax的GET请求只能执行一次的解决办法

转载自 IE8浏览器缓存问题导致Ajax的GET请求只能执行一次的解决办法 最近在测试兼容性问题的时候发现&#xff0c;使用Ajax的GET请求向后台获取响应结果时&#xff0c;如果是IE8浏览器&#xff0c;第一次发送请求时会得到正常的返回结果&#xff0c;然后当再去发送相同请求访…

springboot获取多个请求参数_springboot获取URL请求参数的多种方式

1、直接把表单的参数写在Controller相应的方法的形参中&#xff0c;适用于get方式提交&#xff0c;不适用于post方式提交。/*** 1.直接把表单的参数写在Controller相应的方法的形参中* param username* param password* return*/RequestMapping("/addUser1")public S…

Mysql常用语法总结

Mysql常用语法总结如下&#xff1a; #连接mysql数据库(Dos下面) mysql -u root -p 123 #创建数据库 create database myschool; #创建表 drop table student create table student ( id int comment 编号, name CHAR(10) comment 姓名 )charset utf8drop table if exis…