冒泡排序快速排序选择排序(Java实现)
Posted 听风者-better
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了冒泡排序快速排序选择排序(Java实现)相关的知识,希望对你有一定的参考价值。
1.冒泡排序
package sort;
public class BubbleSort
public static void main(String[] args)
int[] arr = new int[] 2, 6, 1, 3, 9, 34, 27, 18, 28, 87, 73, 90 ;
System.out.println("排序前");
for (int num : arr)
System.out.print(num + " ");
sort(arr);
System.out.println();
System.out.println("排序后");
for (int num : arr)
System.out.print(num + " ");
public static void sort(int[] arr)
for (int i = 0; i < arr.length - 1; i++)
for (int j = 0; j < arr.length - 1 - i; i++)
if (arr[j] > arr[j + 1])
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
2.选择排序
package sort;
public class SelectSort
public static void main(String[] args)
int[] arr = new int[] 2, 6, 1, 3, 9, 34, 27, 18, 28, 87, 90, 77 ;
System.out.println("排序前");
for (int num : arr)
System.out.print(num + " ");
sort(arr);
System.out.println();
System.out.println("排序后");
for (int num : arr)
System.out.print(num + " ");
public static void sort(int[] arr)
for (int i = 0; i < arr.length - 1; i++) // 做第i趟排序
int index = i;// 选最小的记录
for (int j = index + 1; j < arr.length; j++)
if (arr[index] > arr[j])
index = j;// 记下目前找到的最小值所在的位置
// 在内层循环结束,也就是找到本轮循环的最小的数以后,再进行交换
if (index != i)
int temp = arr[i];
arr[i] = arr[index];
arr[index] = temp;
3.快速排序
参考文章:https://blog.csdn.net/shujuelin/article/details/82423852
package sort;
public class QuickSort
public static void main(String[] args)
int[] arr = 2, 6, 1, 3, 9, 34, 27, 18, 28, 87, 73, 90 ;
System.out.println("排序前数组为:");
for (int num : arr)
System.out.print(num + " ");
int start = 0;
int end = arr.length - 1;
sort(arr, start, end);
System.out.println();
System.out.println("排序后的数组为:");
for (int num : arr)
System.out.print(num + " ");
private static int getMiddle(int[] arr, int start, int end)
int i = start;
int j = end;
int key = arr[start];
while (i < j)
while (i < j && arr[j] >= key)
j--;
while (i < j && arr[i] <= key)
i++;
if (i < j)
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
arr[start] = arr[i];
arr[i] = key;
return i;
private static void sort(int[] arr, int start, int end)
if (start < end)
int index = getMiddle(arr, start, end);
sort(arr, start, index - 1);
sort(arr, index + 1, end);
以上是关于冒泡排序快速排序选择排序(Java实现)的主要内容,如果未能解决你的问题,请参考以下文章
JAVA实现经典排序算法(冒泡排序选择排序插入排序希尔排序堆排序归并排序快速排序)
几种排序方式的java实现(01:插入排序,冒泡排序,选择排序,快速排序)
Java排序算法分析与实现:快排冒泡排序选择排序插入排序归并排序