Java排序

Java 常用排序方法(直接可用)

  1. 数组自带排序(最简单)

import java.util.Arrays;

public class Main {

public static void main(String[] args) {

int[] arr = {5, 2, 9, 1, 5, 6};

// 升序排序

Arrays.sort(arr);

System.out.println(Arrays.toString(arr));

}

}

  1. 集合排序(List)

import java.util.ArrayList;

import java.util.Collections;

public class Main {

public static void main(String[] args) {

ArrayList<Integer> list = new ArrayList<>();

list.add(3);

list.add(1);

list.add(4);

Collections.sort(list);

System.out.println(list);

}

}

  1. 冒泡排序(手写基础)

public static void bubbleSort(int[] arr) {

int n = arr.length;

for (int i = 0; i < n-1; i++) {

for (int j = 0; j < n-i-1; j++) {

if (arr[j] > arr[j+1]) {

int temp = arr[j];

arr[j] = arr[j+1];

arr[j+1] = temp;

}

}

}

}

  1. 选择排序

public static void selectionSort(int[] arr) {

int n = arr.length;

for (int i = 0; i < n-1; i++) {

int min = i;

for (int j = i+1; j < n; j++) {

if (arr[j] < arr[min]) min = j;

}

int temp = arr[min];

arr[min] = arr[i];

arr[i] = temp;

}

}

  1. 插入排序

public static void insertionSort(int[] arr) {

int n = arr.length;

for (int i = 1; i < n; i++) {

int key = arr[i];

int j = i - 1;

while (j >= 0 && arr[j] > key) {

arr[j+1] = arr[j];

j--;

}

arr[j+1] = key;

}

}

  1. 快速排序(常用高效)

public static void quickSort(int[] arr, int left, int right) {

if (left >= right) return;

int i = left, j = right, pivot = arr[left];

while (i < j) {

while (i < j && arr[j] >= pivot) j--;

arr[i] = arr[j];

while (i < j && arr[i] <= pivot) i++;

arr[j] = arr[i];

}

arr[i] = pivot;

quickSort(arr, left, i-1);

quickSort(arr, i+1, right);

}

相关推荐
kobesdu1 小时前
【ROS2实战笔记-19】ROS2 生命周期节点的启动顺序、状态转换陷阱与热备方案
java·前端·笔记·机器人·ros·ros2
neo_Ggx231 小时前
Maven 版本管理详解:SNAPSHOT、Release 与 Nexus 仓库的区别和影响
java·maven
matlabgoodboy1 小时前
软件开发定制小程序APP帮代做java代码代编写C语言设计python编程
java·c语言·小程序
江离w2 小时前
新版vibecoding项目初始化指令
java
tongluowan0072 小时前
Spring MVC 底层工作流程+源码分析
java·spring·mvc
java1234_小锋3 小时前
SpringBoot为什么要禁止循环依赖?
java·数据库·spring boot
折哥的程序人生 · 物流技术专研3 小时前
《Java 100 天进阶之路》第17篇:Java常用包装类与自动装箱拆箱深入
java·开发语言·后端·面试
RH2312113 小时前
2026.5.12 Linux
java·linux·数据结构
小新同学^O^4 小时前
简单学习 --> WebSocket
java·websocket·网络协议·学习
敲代码的瓦龙4 小时前
Java?枚举!!!
java·开发语言