您当前的位置:首页 > 电脑百科 > 程序开发 > 算法

java快速排序

时间:2022-07-28 14:57:24  来源:  作者:杂文论

快速排序是一种非常高效的排序算法,它的实现,增大了记录和比较和移动的距离,从而减少总的比较此时和移动次数。采用分而治之的思想,将一个大的问题拆成一个小的问题,小的问题拆成更小的问题。

public static void quickSort(int []array,int low,int high) {

if(low>=high){

return;

}

int left=low;

int right=high;

int base = array[low];

while (left!=right) {//从后面开始检索 遇到比基准数小的就停下,遇到比基准数大于等于的就继续检索

while (array[right]>=base&&left<right) {//left小于right 防止越界 比如数组内所有元素都比base小就会一路走下去

right--;

}

while (array[left] <= base&&left<right) {

left++;

}

 

int temp=array[left];

array[left]=array[right];

array[right]=temp;

}

//交换基准值和相遇位置的值

array[low]=array[left];//相遇的值一定小于基准值

array[left]=base;

quickSort(array,low,left-1);

quickSort(array,left+1,high);

}

快速排序

时间复杂度最好情况是都能分割成较完美的两部分 O(nlog(n)),最坏情况是数组是有序的每次分割只有一边 O(n^2)

空间复杂度为O(nlog(n)) 稳定性:不稳定

快速排序再最坏的情况下可以优化,即优化基准值

三数取中法即low mid high 取中间大小的数字为基准值



Tags:排序   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
MySQL数据库如何生成分组排序的序号
经常进行数据分析的小伙伴经常会需要生成序号或进行数据分组排序并生成序号。在MySQL8.0中可以使用窗口函数来实现,可以参考历史文章有了这些函数,统计分析事半功倍进行了解。...【详细内容】
2024-01-30  Search: 排序  点击:(56)  评论:(0)  加入收藏
百度推荐排序技术的思考与实践
本文将分享百度在推荐排序方面的思考与实践。在整个工业界的推广搜场景上,特征设计通常都是采用离散化的设计,需要保证两方面的效果,一方面是记忆,另一方面是泛化。特征都是通过...【详细内容】
2024-01-09  Search: 排序  点击:(81)  评论:(0)  加入收藏
Excel排序时如何忽略空格进行排序?
在 Excel 中进行数据排序时,有时候数据中会包含空格,这可能会影响排序的准确性和结果。在这种情况下,我们可以通过一些技巧来使 Excel 跳过空格进行排序。接下来,我将详细介绍在...【详细内容】
2024-01-09  Search: 排序  点击:(116)  评论:(0)  加入收藏
高级SQL优化系列之分组排序优化
问题定义在如何创建高效的数据库索引中,我们说到过,可以通过有序的索引(B+tree)来避免排序操作,从而提升查询的性能。但是如果排序子句或分组子句中的字段来自不同的表,那么数据库...【详细内容】
2023-10-16  Search: 排序  点击:(321)  评论:(0)  加入收藏
桶排序:原理、性能分析与 Java 实现
桶排序(Bucket Sort)是一种排序算法,通常用于将一组数据分割成有限数量的桶(或容器),然后对每个桶中的数据进行排序,最后将这些桶按顺序合并以得到排好序的数据集。图片桶排序原理 ...【详细内容】
2023-10-13  Search: 排序  点击:(197)  评论:(0)  加入收藏
我们一起聊聊C#堆排序算法
前言堆排序是一种高效的排序算法,基于二叉堆数据结构实现。它具有稳定性、时间复杂度为O(nlogn)和空间复杂度为O(1)的特点。堆排序实现原理 构建最大堆:将待排序数组构建成一...【详细内容】
2023-10-10  Search: 排序  点击:(285)  评论:(0)  加入收藏
面试过程中常见的排序算法问题你见个?附常见排序算法源代码
在面试过程中,排序算法常常是一个重要的考点。排序算法的熟练掌握不仅能展现出候选人对基本数据结构的理解,也能展示出他们的算法设计和问题解决能力。下面我们将详细讨论几种...【详细内容】
2023-10-09  Search: 排序  点击:(88)  评论:(0)  加入收藏
Python数据排序与排名:轻松找到最值与排名
Python是一种功能强大的编程语言,提供了许多用于数据处理和分析的库和函数。其中,排序和排名是数据分析中常用的操作,可以帮助我们轻松找到数据集中的最值并进行排名。在下面将...【详细内容】
2023-09-23  Search: 排序  点击:(193)  评论:(0)  加入收藏
掌握API数据检索:过滤和排序的综合指南
译者 | 李睿审校 | 重楼API可以返回大量的数据,这使得开发人员很难只检索他们需要的信息。这就是API的过滤和排序功能的用武之地。过滤和排序是API设计的两个基本功能,它们允...【详细内容】
2023-09-09  Search: 排序  点击:(268)  评论:(0)  加入收藏
API数据检索全攻略:过滤与排序技巧大揭秘
译者 | 李睿审校 | 重楼API可以返回大量的数据,这使得开发人员很难只检索他们需要的信息。这就是API的过滤和排序功能的用武之地。过滤和排序是API设计的两个基本功能,它们允...【详细内容】
2023-09-08  Search: 排序  点击:(363)  评论:(0)  加入收藏
▌简易百科推荐
小红书、视频号、抖音流量算法解析,干货满满,值得一看!
咱们中国现在可不是一般的牛!网上的网友已经破了十个亿啦!到了这个互联网的新时代,谁有更多的人流量,谁就能赢得更多的掌声哦~抖音、小红书、、视频号,是很多品牌必争的流量洼地...【详细内容】
2024-02-23  二手车小胖说    Tags:流量算法   点击:(18)  评论:(0)  加入收藏
雪花算法详解与Java实现:分布式唯一ID生成原理
SnowFlake 算法,是 Twitter 开源的分布式 ID 生成算法。其核心思想就是:使用一个 64 bit 的 long 型的数字作为全局唯一 ID。在分布式系统中的应用十分广泛,且 ID 引入了时间戳...【详细内容】
2024-02-03   一安未来  微信公众号  Tags:雪花算法   点击:(54)  评论:(0)  加入收藏
程序开发中常用的十种算法,你用过几种?
当编写程序时,了解和使用不同的算法对解决问题至关重要。以下是C#中常用的10种算法,每个算法都伴随着示例代码和详细说明。1. 冒泡排序 (Bubble Sort):冒泡排序是一种简单的比...【详细内容】
2024-01-17  架构师老卢  今日头条  Tags:算法   点击:(46)  评论:(0)  加入收藏
百度推荐排序技术的思考与实践
本文将分享百度在推荐排序方面的思考与实践。在整个工业界的推广搜场景上,特征设计通常都是采用离散化的设计,需要保证两方面的效果,一方面是记忆,另一方面是泛化。特征都是通过...【详细内容】
2024-01-09  DataFunTalk  微信公众号  Tags:百度推荐   点击:(81)  评论:(0)  加入收藏
什么是布隆过滤器?如何实现布隆过滤器?
以下我们介绍了什么是布隆过滤器?它的使用场景和执行流程,以及在 Redis 中它的使用,那么问题来了,在日常开发中,也就是在 Java 开发中,我们又将如何操作布隆过滤器呢?布隆过滤器(Blo...【详细内容】
2024-01-05  Java中文社群  微信公众号  Tags:布隆过滤器   点击:(94)  评论:(0)  加入收藏
面向推荐系统的深度强化学习算法研究与应用
随着互联网的快速发展,推荐系统在各个领域中扮演着重要的角色。传统的推荐算法在面对大规模、复杂的数据时存在一定的局限性。为了解决这一问题,深度强化学习算法应运而生。本...【详细内容】
2024-01-04  数码小风向    Tags:算法   点击:(106)  评论:(0)  加入收藏
非负矩阵分解算法:从非负数据中提取主题、特征等信息
非负矩阵分解算法(Non-negativeMatrixFactorization,简称NMF)是一种常用的数据分析和特征提取方法,主要用于从非负数据中提取主题、特征等有意义的信息。本文将介绍非负矩阵分解...【详细内容】
2024-01-02  毛晓峰    Tags:算法   点击:(75)  评论:(0)  加入收藏
再谈前端算法,你这回明白了吗?
楔子 -- 青蛙跳台阶一只青蛙一次可以跳上一级台阶,也可以跳上二级台阶,求该青蛙跳上一个n级的台阶总共需要多少种跳法。分析: 当n=1的时候,①只需要跳一次即可;只有一种跳法,即f(...【详细内容】
2023-12-28  前端爱好者  微信公众号  Tags:前端算法   点击:(114)  评论:(0)  加入收藏
三分钟学习二分查找
二分查找是一种在有序数组中查找元素的算法,通过不断将搜索区域分成两半来实现。你可能在日常生活中已经不知不觉地使用了大脑里的二分查找。最常见的例子是在字典中查找一个...【详细内容】
2023-12-22  小技术君  微信公众号  Tags:二分查找   点击:(81)  评论:(0)  加入收藏
强化学习算法在资源调度与优化中的应用
随着云计算和大数据技术的快速发展,资源调度与优化成为了现代计算系统中的重要问题。传统的资源调度算法往往基于静态规则或启发式方法,无法适应动态变化的环境和复杂的任务需...【详细内容】
2023-12-14  职场小达人欢晓    Tags:算法   点击:(169)  评论:(0)  加入收藏
站内最新
站内热门
站内头条