冒泡排序快速排序选择排序(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排序算法分析与实现:快排冒泡排序选择排序插入排序归并排序

java编程的冒泡等排序示例

java算法面试题:排序都有哪几种方法?请列举。用JAVA实现一个快速排序。选择冒泡快速集合至少4种方法排序

Java实现快速排序