java快排的一个新手的解法,欢迎赐教

树莓派编译程序时遇到卡死的问题 使用树莓派编译程序的时候,我遇到了程序比较大,编译到某个文件的时候树莓派会死机,关机之后重启可以继续使用,但是编译到同一个地方树莓派又死机的问题。 这个问题出现的主要原因是我给树莓派安装的Ubuntu mate 16.04 系统默认设置的swap交换空间不够,而编译某些文件的时候需要较大的交换空间,树莓派的交换空间被用满所以树莓派看起来好像是死机了的样子。 解决方法,扩展Ubuntu的交换空间。 解决方法,扩展Ubu 阅读详情

给你一个整数数组 nums,请你将该数组升序排列。
示例 1:

输入:nums = [5,2,3,1]
输出:[1,2,3,5]
示例 2:

输入:nums = [5,1,1,2,0,0]
输出:[0,0,1,1,2,5]

import java.util.*;

public class Main {
public static void main(String[] args) {
//测试数据
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[] arr = new int[n];
for (int i = 0; i < n; i++) {
arr[i] = sc.nextInt();
}
arr = sortArray(arr);
System.out.println(Arrays.toString(arr));
}

public static int[] sortArray(int[] nums) {
    quickSort(nums,0,nums.length-1);
    return nums;
}
public static void quickSort(int[] a, int p, int r){
    if(p < r){
        int q = partition( a, p , r);
        quickSort( a, p, q-1);
        quickSort( a, q+1, r);
    }
}
public static int partition(int[] a, int p, int r){
    int midIndex = p + ((r-p) >> 1);//获得中间索引
    int mid = 0;
    //三点中值法
    if (a[p] >= a[midIndex] && a[p] < a[r]) {
        mid = p;
    } else if(a[r] >= a[midIndex] && a[r] < a[p]){
        mid  =  r;
    } else{
        mid = midIndex;
    }
    swap( a, mid, p);//交换
    int temp = a[p];
    int up = p;
    int later =  r;

    while ( up <= later){
        //获取从up开始的第一个大于temp
        while (up <= later && temp >= a[up]) up++;
        //获取later前面的第一个小于temp
        while ( up <= later && temp < a[later]) later--;
        if (up < later) swap( a, up, later);//交换
    }
    swap( a, p, later);
    return later;
}
//交换
public static void swap(int[] a, int i, int j) {
    int temp = a[i];
    a[i] = a[j];
    a[j] = temp;
}

}

来源:力扣(LeetCode)
题目链接: https://leetcode-cn.com/problems/sort-an-array/

欢迎大牛来赐教

使用DrissionPage和自动化技术实现得物鞋子信息爬取 本文介绍了一个基于DrissionPage技术的得物鞋子信息采集系统,能自动化采集商品图片、价格等数据并保存为Excel。系统采用浏览器模拟技术处理动态加载内容,通过XPath定位元素,实现智能交互和完整数据采集。关键技术包括:图片URL提取与下载、Excel数据集成与图片嵌入、文件名安全处理等。项目适用于市场分析和学术研究,强调必须遵守法律法规和平台规则,仅用于非商业用途。与API爬虫相比,浏览器自动化能更好处理现代Web应用,但需注意知识产权保护。 阅读详情

相关推荐

COMSOL网格划分技巧总结

在对马赫曾德尔型光学传感器进行模拟仿真时,在采用自动物理场自动控制网格-极细化的情况下透射谱曲线仍不理想,因此需要手动划分网格来对其进行更精细的剖分。 手动划分的基本原则是在作用边界,热点,曲边处做细致划分, 基底,包层等做粗略划分。对于光波导型的微纳结构,在仿真时一般需要用到创建边界层网格。 1.COMSOL所需要的网格数量 网格单元数越多,结果精细度越高,计算所需内存越多。在细化到一定程度后网格收敛,仿真结果提升不明显。 2.网格剖分类型 ...

qq_42453337的博客 4万+

快排中partition函数-java

快排中partition函数非常有用, 其两种实现很难在java这种有jvm干预的情况下测出哪个更优秀, 不知道是不是测试手段比较low? 总的来说, partition2交换的次数少一下. 对算法的理解也没到化入骨髓的地步, 先备注一下. 要是有大神指点就好了.package com.test;import java.util.Random;public class PartitionHolder

johnLee的专栏 2793

AMCL代码详解(六)amcl中的重采样

每次都从w1左边的竖线开始转,显而易见,转到w1的概率为0-w1之间的随机数,转到w2的概率为w1到w1+w2之间的随机数,转到w3的概率为w1+w2到w1+w2+w3之间的随机数,后面的依次类推。当某个粒子的权值较大的时候,产生的随机数落在相应区间的概率就会增大,从而实现了对权值大粒子的多次复制,权值小的粒子的剔除。可以看出,在整个重采样的过程中,粒子进行了两次种情况的刷新,一种是随机生成的新的粒子,一种是对原来的粒子的复制。得到的值越大,说明粒子的权重越小,当前粒子的可信度比较小,需要重采样粒子。

YiYeZhiNian的博客 1580

java 快排_【Leetcode每日打卡】4种解法秒杀TopK(快排变形/堆/二叉搜索树/计数排序)...

干货预警:所有文章都会首发于我的公众号【甜姨的奇妙冒险】,欢迎watch。今日打卡题是道老生常谈的TopK问题,常考哦~而且一般都不会只问一种解法 对于经典TopK问题,本文给出4种通用解决方案,让你一招在手,秒杀所有~一、原题描述:二、题目分析:TopK问题,不管是求前K大/前K小/第K大/第K小等,都有4种不错的方法喔:1. O(N):用快排变形最最最高效解决TopK问题 ...

weixin_39959236的博客 151

Proteus仿真——电压比较器

电压比较器是一种对输入信号进行鉴别与比较的电路,是组成非正弦波发生电路的基本单元电路。常用电压比较器有如下几种:单限比较器、滞回比较器、窗口比较器、集成电压比较器等。

weixin_58745307的博客 3377

Kubernetes集群资源优化实战:Volcano调度器如何帮你省下30%GPU算力

本文详细介绍了如何通过Volcano调度器的Binpack策略优化Kubernetes集群中的GPU资源利用率,解决AI模型训练中的资源碎片化问题。通过实战配置和调优指南,帮助用户提升30%的GPU算力利用率,显著降低任务等待时间和硬件成本。

weixin_30832143的博客 507

面试常见单链表排序问题的解法

简介 给定一个单链表的头节点,要将该链表排序. 这个问题的解法实际上有很多,这里我主要写一下快排的实现.值得注意的是,我们这里用的是值交换,并不是指针交换,对于单链表问题有时候使用值交换是非常方便的,避免了很多的指针操作. 思路 办法实际上不难,我们回忆一下快排的思路,先选取一个key,然后以key为标准,将数组划分为两个子数组,一个子数组的所有值都小于key,另一个子数组的所有值都大于等于key...

woyaoxuechengxu的博客 233

DeepSeek揭秘:构建高效反洗钱智能监控系统的全流程与代码实例

在金融领域,反洗钱(AML)是一项至关重要的任务。随着金融交易的复杂性和规模不断增长,传统的手工监控方法已无法满足现代金融系统的需求。因此,开发一个智能监控系统来自动识别和报告可疑交易变得尤为重要。本文将详细介绍如何使用DeepSeek技术构建一个高效的反洗钱智能监控系统,并提供相关的代码实例。

理论都是虚的,代码才是王道。 886

【练习】分治--快排思想

快速选择算法

m0_0 1426

OceanBase数据库LSM-Tree存储引擎深度解析:合并写入与压缩优化策略

OceanBase数据库采用创新的LSM-Tree架构设计,通过"基线-增量"分离存储实现高性能。内存中的MemTable处理写入,磁盘上的SSTable存储有序数据,利用多级缓存加速读取。写入时先写日志再更新内存,合并操作将增量数据整合为基线数据以优化查询性能。相比传统B+树引擎,OceanBase在写入吞吐、压缩效率和存储成本方面优势显著,特别适合写入密集型场景。合并操作作为核心机制,通过多种触发方式和执行策略平衡性能与资源消耗。

本博客聚焦 YOLOv11 全流程落地,涵盖架构优化、数据集处理、训练技巧与多场景部署,兼及国产数据库、Java 开发与 AI 模型应用,内容兼顾理论与工程实践,为开发者提供系统干货,助力高效提升技术能力。 1342

学Simulink--基础微电网场景实例:基于Simulink的微电网并网/孤岛无缝切换控制仿真

本文完成了基于 Simulink 的微电网并网/孤岛无缝切换控制仿真,实现了:✅ 构建含双模式逆变器的微电网模型✅ 实现预同步 + Stateflow 逻辑的智能切换✅ 验证计划与非计划切换的性能边界✅ 证明“无缝”在工程上是可实现的。

amy_mhd的博客 104

LeetCode与面试中的高频题型——Top K个数的解法,使用堆数据结构与快排算法

这是LeetCode中的剑指offer的题目,原题目如下陈述: 输入整数数组 arr ,找出其中最小的 k 个数。例如,输入4、5、1、6、2、7、3、8这8个数字,则最小的4个数字是1、2、3、4。 这类问题我们称之为topK问题,也是给你一堆的数,你来找到其中最小的K个,或者最大的K个数据,输入就是数组,还有K个 算法思想: 使用JAVA语言解题十分的方便,因为java语言中有priorityqueue的大根堆与小根堆数据结构,其内部是有完全二叉树进行实现的,固定长度的K,自动进行排序。进行删除堆顶与堆

千与编程 404

基于YOLOv8的植物生长阶段识别系统设计与实现

本文详细介绍了一个基于YOLOv8深度学习模型的植物生长阶段识别系统,包含完整的数据集构建、模型训练、评估以及基于PyQt5的用户界面开发过程。系统能够自动识别植物在不同生长阶段(如发芽期、生长期、开花期、结果期等)的形态特征,为精准农业和智能种植提供技术支持。文章提供了完整的代码实现,并讨论了模型优化策略和实际应用场景。关键词:植物生长阶段识别、YOLOv8、目标检测、PyQt5、深度学习。

YOLO 467

LeetCode1—Two Sum

LeetCode第一题,Two Sum

闲鱼的博客 357

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

java的单链表排序算法_单链表快速排序的Java实现

​简介给定一个单链表的头节点,要将该链表排序. 这个问题的解法实际上有很多,这里我主要写一下快排的实现.值得注意的是,我们这里用的是值交换,并不是指针交换,对于单链表问题有时候使用值交换是非常方便的,避免了很多的指针操作.思路办法实际上不难,我们回忆一下快排的思路,先选取一个key,然后以key为标准,将数组划分为两个子数组,一个子数组的所有值都小于key,另一个子数组的所有值都大于等于key,然...

weixin_39847728的博客 523

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

【Java 优选算法】分治 - 快速排序

如有错误,欢迎指出~分治算法就是将一个问题划分为多个相同类型的子问题,解决这些子问题即解决该类问题。

2301_80898480的博客 739

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Java开发三年四面字节跳动复习一个月斩获offer,寒冬并不可怕啊,所以现在酷暑也要坚持哦

目前互联网行业形势越来越严峻,很多人接连投递了很多的简历,得到的回复却是寥寥无几,面对这情况,想要不被淘汰就要不断学习,自身强,才能站稳,俗话说打铁还需自身硬,不如索性好好复习大概一个半月的样子,挑战字节跳动成功!!欢迎大家文末留言与我一起讨论!...

m0_62051288的博客 197

Java开发三年四面字节跳动复习一个月斩获offer,寒冬并不可怕

目前互联网行业形势越来越严峻,我接连投递了很多的简历,得到的回复却是寥寥无几,索性好好复习了大概一个半月的样子,挑战字节跳动成功!!接下来分享我在字节面试遇到的面试题,欢迎大家文末留言与我一起讨论! 字节一面 面试题(面了一个小时,只记得一 小部分了,不分先后) 讲讲项目 在浏览器的ur栏里输入一个https的请求会发生什么? balabala. 三次握手,close_ _wait, time_ _wait原理 内存泄露原因,举例子,怎么排查,OOM异常 静态内部类会被编译成几个c.

m0_63437643的博客 141

剑指offer(第二版)——最小的k个数

PS:《剑指offer》是很多同学找工作都会参考的一本面试指南,同时也是一本算法指南(为什么它这么受欢迎,主要应该是其提供了一个循序渐进的优化解法,这点我觉得十分友好)。现在很多互联网的算法面试题基本上可以在这里找到影子,为了以后方便参考与回顾,现将书中例题用Java实现(第二版),欢迎各位同学一起交流进步。 GitHub: https://github.com/Uplpw/SwordOffer。 完整题目链接: https://blog.youkuaiyun.com/qq_41866626/article/detai

qq_41866626的博客 259

【LeetCode热题100】打卡第22天:编辑距离&颜色分类

大家好,我是知识汲取者,欢迎来到我的LeetCode热题100刷题专栏!精选 100 道力扣(LeetCode)上最热门的题目,适合初识算法与数据结构的新手和想要在短时间内高效提升的人,熟练掌握这 100 道题,你就已经具备了在代码世界通行的基本能力。在此专栏中,我们将会涵盖各种类型的算法题目,包括但不限于数组、链表、树、字典树、图、排序、搜索、动态规划等等,并会提供详细的解题思路以及Java代码实现。如果你也想刷题,不断提升自己,就请加入我们吧!QQ群号:827302436。

热爱编程、热爱生活、热爱探索 1102

java怎么把随机数放入数组_Java开发三年四面字节跳动复习一个月斩获offer,寒冬并不可怕...

目前互联网行业形势越来越严峻,我接连投递了很多的简历,得到的回复却是寥寥无几,索性好好复习了大概一个半月的样子,挑战字节跳动成功!!接下来分享我在字节面试遇到的面试题,欢迎大家文末留言与我一起讨论!字节一面面试题(面了一个小时,只记得一 小部分了,不分先后)讲讲项目在浏览器的ur栏里输入一个https的请求会发生什么? balabala.三次握手,close_ _wait, time_ _wait...

weixin_36486395的博客 118

剑指offer(第二版)——数组中重复的数字

PS:《剑指offer》是很多同学找工作都会参考的一本面试指南,同时也是一本算法指南(为什么它这么受欢迎,主要应该是其提供了一个循序渐进的优化解法,这点我觉得十分友好)。现在很多互联网的算法面试题基本上可以在这里找到影子,为了以后方便参考与回顾,现将书中例题用Java实现(第二版),欢迎各位同学一起交流进步。 GitHub: https://github.com/Uplpw/SwordOffer。 完整题目链接: https://blog.youkuaiyun.com/qq_41866626/article/detai

qq_41866626的博客 406

Java开发三年四面字节跳动复习一个月斩获offer,寒冬并不可怕!

目前互联网行业形势越来越严峻,我接连投递了很多的简历,得到的回复却是寥寥无几,索性好好复习了大概一个半月的样子,挑战字节跳动成功!!接下来分享我在字节面试遇到的面试题,欢迎大家文末留言与我一起讨论!

jcc4261的博客 637
下一篇: 把数字翻译成字符串 java递归解法 力扣面试题46
she of study
博客等级 码龄6年 2粉丝 7原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值