记录自己整理的几个java排序代码
public class Index {
public static void main(String[] args) {
int[] a = { 1, 4, 5, 6, 8, 2, 3, 9, 6, };
// selectSort(a);
// bubleSort(a);
// insertSort(a);
// quickSort(a, 0, a.length - 1);
// quickSort(a, 0, a.length - 1);
shellSort(a);
for (int b : a) {
System.out.println(b);
}
}
// select sort,从后面的列表中选出最大的放到前面
public static void selectSort(int[] arr) {
for (int i = 0; i < arr.length - 1; i++) {
for (int j = i + 1; j < arr.length; j++) {
if (arr[i] < arr[j]) {
int tem = arr[j];
arr[j] = arr[i];
arr[i] = tem;
}
}
}
}
// buble sort,子循环中,两两比较交换,形似冒泡,从而将大的数放到后面
public static void bubleSort(int[] arr) {
for (int i = 0; i < arr.length - 1; i++) {
for (int j = 0; j < arr.length - 1 - i; j++) {
if (arr[j] > arr[j + 1]) {
int tem = arr[j + 1];
arr[j + 1] = arr[j];
arr[j] = tem;
}
}
}
}
// insert sort,假定前面的是有序的,子循环中,用目标元素和前面的比较,遇到大的就向前移动,遇到小的就插入该位置
public static void insertSort(int[] arr) {
for (int i = 1; i < arr.length; i++) {
int j = i;
int temp = arr[i];
while (j > 0) {
if (temp < arr[j - 1]) {
arr[j] = arr[j - 1];
arr[j - 1] = temp;
}
j--;
}
}
}
// quick sort,类似折半的思想,让某个值左边的都小于它,右边的都大于它,然后两边递归
public static void quickSort(int[] arr, int low, int high) {
int start = low;
int end = high;
int key = arr[start];
while (end > start) {
while (end > start && arr[end] >= key) {
end--;
}
if (arr[end] <= key) {
int tem = arr[end];
arr[end] = arr[start];
arr[start] = tem;
}
while (start < end && arr[start] <= key) {
start++;
}
if (arr[start] >= key) {
int tem = arr[start];
arr[start] = arr[end];
arr[end] = tem;
}
}
if (start > low) {
quickSort(arr, low, start - 1);
}
if (end < high) {
quickSort(arr, end + 1, high);
}
}
// shell sort,类似选择排序,只不过有了增量,先粗后细的思想(先粗略排序,再仔细排序)
public static void shellSort(int[] arr) {
int d = arr.length / 2;
while (d >= 1) {
for (int i = 0; i < arr.length; i++) {
for (int j = i; j < arr.length - d; j = j + d) {
if (arr[j] > arr[j + d]) {
int tem = arr[j];
arr[j] = arr[j + d];
arr[j + d] = tem;
}
}
}
d = d / 2;
}
}
}
Atas ialah kandungan terperinci java基本排序实例教程. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Cara menangani kesilapan limpahan digital ketika menyambung ke pangkalan data Oracle dalam IDEA ketika kami menggunakan Intellij ...

Apabila mengkaji kerangka Mybatis, pemaju sering menghadapi pelbagai masalah mengenai anotasi. Salah satu soalan biasa ialah cara menggunakan anotasi @ResultType dengan betul ...

Kaedah menggunakan teknologi pemprosesan bahasa semulajadi untuk menanyakan data kakitangan dalam perusahaan moden, pengurusan dan pertanyaan data kakitangan adalah keperluan umum. Katakan kita ...

Masalah Prestasi Akses Pangkalan Data dalam Projek Springboot Multi-Data Sumber Konfigurasi Artikel ini bertujuan menggunakan Atomikos untuk konfigurasi sumber pelbagai data dalam projek springboot ...

Apabila membungkus projek Java ke dalam fail balang yang boleh dilaksanakan, ia menemui masalah NoclassDeffoundError. Banyak pemaju Java boleh ...

Mengenai kaedah analisis Intellijidea retak di dunia pengaturcaraan, Intellij ...

Masalah Pengenalan: Kualiti video yang lebih baik adalah bahagian penting dalam pemprosesan video, terutamanya apabila memproses video definisi rendah, cara menggunakan bahasa Java dan ...

Dalam mengendalikan aplikasi springboot, kami sering menghadapi masalah bagaimana untuk menerima parameter permintaan dengan betul. Terutama apabila format parameter bukan JSON biasa, lebih banyak ...


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

PhpStorm versi Mac
Alat pembangunan bersepadu PHP profesional terkini (2018.2.1).

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Penyesuai Pelayan SAP NetWeaver untuk Eclipse
Integrasikan Eclipse dengan pelayan aplikasi SAP NetWeaver.

EditPlus versi Cina retak
Saiz kecil, penyerlahan sintaks, tidak menyokong fungsi gesaan kod

DVWA
Damn Vulnerable Web App (DVWA) ialah aplikasi web PHP/MySQL yang sangat terdedah. Matlamat utamanya adalah untuk menjadi bantuan bagi profesional keselamatan untuk menguji kemahiran dan alatan mereka dalam persekitaran undang-undang, untuk membantu pembangun web lebih memahami proses mengamankan aplikasi web, dan untuk membantu guru/pelajar mengajar/belajar dalam persekitaran bilik darjah Aplikasi web keselamatan. Matlamat DVWA adalah untuk mempraktikkan beberapa kelemahan web yang paling biasa melalui antara muka yang mudah dan mudah, dengan pelbagai tahap kesukaran. Sila ambil perhatian bahawa perisian ini