import java.util.Arrays;
/**
* Created with Intellij IDEA
* ClassName:Test
* User:MaLe
* Description:
*
* @Date:2021/11/11
* @Time:9:13
* @author:395645313@qq.com
*/
public class Test {
//插入排序
public static void insertSort(int[] arr){
for (int i = 0; i <arr.length; i++) {
int tmp=arr[i];
int j = i-1;
for (; j >=0; j--) {
if (tmp<arr[j]){
arr[j+1]=arr[j];
}else{
break;
}
}
arr[j+1]=tmp;
}
}
//选择排序
public static void selectSort(int[] arr) {
for (int i = 0; i < arr.length ; i++) {
for (int j = i+1; j <arr.length; j++) {
if (arr[i]>arr[j]){
int tmp=arr[i];
arr[i]=arr[j];
arr[j]=tmp;
}
}
}
}
//冒泡排序
public static void bubbleSort(int[] arr){
for (int i = 0; i <arr.length-1; i++) {
boolean flg=false;
for (int j = 0; j <arr.length-1-i; j++) {
if (arr[j]>arr[j+1]){
int tmp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=tmp;
flg=true;
}
}
if (!flg){
break;
}
}
}
//快速排序
public int partiStion(int[] nums,int start,int end){
int tmp=nums[start];
while(start<end){
while(start<end && tmp<=nums[end]){
end--;
}
nums[start]=nums[end];
while(start<end && tmp>=nums[start]){
start++;
}
nums[end]=nums[start];
}
nums[start]=tmp;
return start;
}
public void quckly(int[] nums,int low,int high){
if(low>=high) return;
int pivot=partiStion(nums,low,high);
quckly(nums,low,pivot-1);
quckly(nums,pivot+1,high);
}
public void sortColors(int[] nums) {
quckly(nums,0,nums.length-1);
}
//堆排序
public static void shiftDown(int[] arr,int parent,int len) {
int child = (2*parent )+1;
while(child<len){
if(child+1<len && arr[child]<arr[child+1]){
child++;
}
if(arr[child]>arr[parent]){
int tmp=arr[child];
arr[child]=arr[parent];
arr[parent]=tmp;
parent=child;
child=2*parent+1;
}else{
break;
}
}
}
public static void createHeap(int[] arr){
for (int i = (arr.length-1-1) ; i >=0 ; i--) {
shiftDown(arr,i,arr.length);
}
}
public static void heapSort(int[] arr){
//大根堆
createHeap(arr);
int end=arr.length-1;
while(end>0){
int tmp=arr[end];
arr[end]=arr[0];
arr[0]=tmp;
shiftDown(arr,0,end);
end--;
}
}
相关推荐
Fofa API高阶玩法:用Python批量获取漏洞资产(含OA系统扫描实战)
本文详细介绍了如何利用Python结合Fofa API实现自动化漏洞资产收集的高阶实战技巧。通过构建健壮的客户端、设计精准查询语法、实现多线程批量采集,并以OA系统漏洞扫描为例,演示了从资产发现、过滤验证到报告生成的全流程,旨在提升安全运维与应急响应的效率。
Java排序
本文章主要为大家讲解了排序的相关知识,讲述了我们常用的七个大的排序比较有插入排序、希尔排序、选择排序、堆排序、冒泡排序、快速排序和归并排序。在讲解他们的过程中我们为大家先介绍他们的原理是什么,再一步一步的实现他们,并将代码展示。此文章共2万字,是一篇超级详细的排序讲解!!!
SRAM compiler选项中 Soft Error Repair (SER)
引起的瞬时故障,可能会影响 SRAM 中存储的数据。SER 功能通过某种机制检测并修复这些错误,从而提高存储器的可靠性。在 SRAM 编译器中,
java中对数组进行排序_如何在Java中对数组排序
java中对数组进行排序Java Array is like a container that can hold a fixed number of the same type of items, it can be primitive types as well as Objects. Java Array就像一个容器,可以容纳固定数量的相同类型的项目,它可以是原始类型也可以是对象。 Jav...
Chapter 7 Linear Voltage Regulators
这一章我们介绍LDO.
思科模拟器Cisco Packet Tracer交换机的管理配置
一、交换机的管理方式:带内管理和带外管理 通过交换机的 Console 端口管理交换机属于带外管理;这种管理方式不占用交换机的网络端口,第一次配置交换机必须利用 Console 端口进行配置。 通过 Telnet、拨号等方式属于带内管理。 二、控制台配置思科交换机 1.新建拓扑图 新建拓扑,选择console线连接交换机和PC,一端接交换机的console口,一端接PC的RS 232 口(...
java 排序 详解
java 排序 详解
关于对鱼眼相机图片进行畸变校正的两种思路
鱼眼畸变主要表现为径向畸变(Radial Distortion),图像中心正常,边缘向外拉伸。畸变模型通常基于入射角θ\thetaθ(光线与光学轴夹角)和图像半径rrr的关系。等距投影(Equidistant Projection)rdfθrdfθ,其中rdr_drd为畸变图像半径,fff为焦距,θ\thetaθ为入射角。等立体角投影(Equisolid Angle Projection)rd2fsinθ2rd2fsinθ/2。
Java List排序 java ListMap 排序 Java listmap 模拟 oracle 排序 Java listmap 模拟 mysql 排序
对 Listmap的结果集进行排序,类似于模拟 数据库中的Order By 排序。那么主要的需求有: 排序方式 ASC/DESC ; null 值处理:NULL FIRST / NULL LAST 。 在Java 中要实现以上相应的功能,对List进行排序,会遇到对应问题: 元素中有 null ,排序时候会抛出 NPE 、 null 元素放在 最前、最后面的问题。
LED单元板驱动(HUB75接口)
开始之前先吐槽一下,搜这个的资料。要么都是Arduino,要么单片机的收费。小小的一个LED单元板,凭什么? 用Arduino是你速度快还是我ST,树莓派不好用?收费更离谱,这点东西还藏私?给你个中指凸。把原理都写出来看你怎么收费。 一、接口定义及原理 如图,有两个RGB通道,共占用6个IO。剩下的ABCDE为地址通道,LAT为行数据锁存通道,CLK为数据时钟,OE为低电平使能LED显示。图片这里没有E,证明它是16扫的,有E就会把B上面的地改为E。这样就是5位,2的5次方32扫。1.
AD620仪表放大器模组实战:从调零到信号放大的完整指南
本文详细介绍了AD620仪表放大器模组的实战应用,从调零到信号放大的完整指南。AD620模组以其专业级性能和易用性成为微弱信号放大的首选,集成了AD620芯片、LM358运放和7660电源转换芯片。文章提供了调零技巧、增益设置方法以及单端与差分输入的正确连接方案,并通过心电信号采集和称重传感器等实际案例展示了其广泛应用。
Java自然排序与定制排序
一、自然排序 自然排序:类实现了java.lang.Comparable接口,重写compareTo()的规则 如果当前对象this大于形参对象obj,则返回正整数;如果当前对象this小于形参对象obj,则返回负整数;如果当前对象this等于参数对象obj,则返回零。 1.Person类 public class Person implements Comparable<Pers...
CKAD-CN考试之路----12
显然,对应的value都已经实现了加密.保存退出,等待pod重新创建。确认secret是否被加密。编辑secret文件。
Java 排序
TreeMap 本身并不直接支持根据值(value)进行排序,因为它的设计初衷是按键(key)的自然顺序或提供的 Comparator 进行键排序。c. 如果Map中有多个具有相同值的键,Collectors.toMap()的合并函数将决定保留哪个键。b. 使用 Collections.sort() 方法对这个列表进行排序,并提供一个自定义的比较器(Comparator),该比较器根据值进行比较。a. 将Map转换为一个Stream,然后使用sorted()方法对Stream中的元素进行排序。
迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)
迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)
Devexpress16.2.6破解工具
Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具
java坐标排序_java排序
图片来自网络一、用泛型实现快排,可以传入不通类型进行排序,比如String数组,Integer数组。/*** 快速排序**@authorchx**/public classQuickSort {/*** 数组内数值的交换函数**@paramarr* 原数组*@paramleftIndex* 左索引*@paramrightIndex* ...
LinePhone3.2.7(android端最新版本) sip客户端
SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/
java 8 排序_java8——排序
对数据进行排序是平常经常会用到的操作之一,使用Jav8排序可以减少你在排序这方面的代码量,优化你的代码。测试用例代码定义个实体类User,拥有姓名name,年龄age,积分credits三个属性,定义一个包含User的集合,用于排序,下面是代码/* 这里偷个懒,用lombok注解生成实体类getset等一些基本方法 */@Data@AllArgsConstructor@NoArgsConstruc...
lwip-2.0.3
lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。
java数组排序的方法_Java数组排序方法详解
数组,其实就是一个给定了大小给定了类型的容器,在这容器中有你设定的元素,你可以对这些元素进行各种升降排列,或者找出其中特殊的元素并进行一系列的运算。数组,本身是有序的元素序列,本文我们就来看看Java数组排序的几个方法。一、冒泡排序举 个 栗 子:5 2 0 4 1 3 一个容量为七的数组排升序(降序同理,最大值变最小就ok)①从这组数中找那个冒泡的(最大的),把它踢到最后 2 0 4 1 3 5...
【Java基础】——Java排序
【Java基础】--Java排序 1、选择排序(Select Sort) 2、冒泡排序(Bubble Sort) 3、插入排序(Insert Sort) 4、希尔排序(Shell Sort) 5、归并排序(Merge Sort) 6、快速排序(Quick Sort) 7、堆排序(Heap Sort)
java排序
时间复杂度:O(NlogN),建堆O(N) ,调整堆O(logN) ,共N - 1 次调整。- 时间复杂度:O(N^2),其中N 是数组长度,最坏和平均情况都是比较和交换接近N^2 次。- 时间复杂度:O(N^2),需进行N - 1 趟,每趟找最小值最多比较N - i 次。- 把堆顶元素(最大值)与待排序区间最后一个元素交换,将最大值移到已排序区间。- 把数组分为有序区间和无序区间,初始时有序区间为空,无序区间为整个数组。- 每次从无序区间找最小值,与无序区间第一个元素交换,使有序区间扩大。
java排序_Java 排序
概述常用到对Java对数组对象进行排序,今天来总结一下,Java对排序问题的处理。Java排序一般包括基础排序和Lambda Comparator增强排序。目的时为了凸显增强排序的优势。准备我们先定义一个简单的实体类:public class Flux { private String name; private int age; public Flux(final St...
arraylist 排序 java_Java对ArrayList进行排序
数字使用直接比较大小来排序,String的话,使用compare()方法进行排序。测试代码:1.对字符串对象排序@Testpublic void test17() throws Exception {List< String > stringList = new ArrayList<>();stringList.add("haha");stringList.add("123...
java给数组排序_java数组如何排序
java中几种数组排序的方法:1、使用Arrays.sort()排序Arrays.sort()排序方法在java中是最简单且最常用的排序方法。int []arr1= {45,34,59,55};Arrays.sort(arr1);//调用方法排序即可Arrays.sort()的使用主要分为对基本数据类型数组的排序和对对象数组的排序。2、冒泡排序简单来说,冒泡排序就是重复地走访过要排序的数列,一次比...
Java—Sort排序
Java中Sort排序是非常常用的方法,这一章我们主要来认识一下Sort的用法和相关的实现。一、数组Sort排序升序排序,直接使用Arrays.Sort方法,例如:int[] array = {10, 3, 6, 1, 4, 5, 9}; //正序排序 Arrays.sort(array);//会检查数组个数大于286且连续性好就使用归并排序,若小于47使用插入排序,其余情况使用双轴快速排序 Sy...
java对列表数据排序_如何在Java中对列表进行排序
java对列表数据排序Sometimes we have to sort a list in Java before processing its elements. In this tutorial, we will learn how to sort a list in the natural order. We will also learn how to use our own Compa...
java排序链表冒泡排序_Java中的冒泡排序
java排序链表冒泡排序Java Sorting is one of the many aspects of java interview questions. In this post, we will see java bubble sort example and write a program for bubble sort. Java排序是Java面试问题的众多方面之一。 在这篇文章中,...
java中的排序方法_Java中8种常见的排序方法
本博主要介绍Java中几种常见的排序算法;/*排序方法的演示1)插入排序(直接插入排序、希尔排序)2)交换排序(冒泡排序、快速排序)3)选择排序(直接选择排序、堆排序)4)归并排序5)分配排序(基数排序)所需辅助空间最多:归并排序所需辅助空间最少:堆排序平均速度最快:快速排序不稳定:快速排序,希尔排序,堆排序。*/其中,文字部分来自于网上整理,代码部分属于自己实现的(堆排序,归并排序,基数排序代码...
495



被折叠的 条评论
为什么被折叠?



