目录:
https://blog.csdn.net/stoneWang_L/article/details/89228145
2)插入排序
https://blog.csdn.net/stoneWang_L/article/details/89221348
3)选择排序
https://blog.csdn.net/stoneWang_L/article/details/89220638
4)快速排序
https://blog.csdn.net/stoneWang_L/article/details/89221592
5)堆排序
https://blog.csdn.net/stoneWang_L/article/details/89190250
6)归并排序
https://blog.csdn.net/stoneWang_L/article/details/89210938
7)希尔排序
https://blog.csdn.net/stoneWang_L/article/details/89217137
冒泡排序
思想:两两比较相邻元素,如果反序就交换,每遍遍历把当前需要比较数组中的最大的元素移到当前比较数组的最后面。比较的元素,每一遍减少一个。这样每一遍就会将当前最大的泡泡移到最后,直到全部为升序或者降序。
code:
1、BubbleSort.java
package DataStr;
import java.util.Arrays;
public class BubbleSort {
public static void main(String[] args) {
int[] arr = SortTestHelper.getRandomArray(15, 0, 20);
System.out.println("冒泡排序前:"+Arrays.toString(arr));
bubbleSort(arr);
System.out.println("冒泡排序后:"+Arrays.toString(arr));
}
/**
* 冒泡排序
* @param arr 待排数组
*/
private static void bubbleSort(int[] arr) {
for(int i=0; i < arr.length; i++) {
for(int j=0; j < arr.length-1-i; j++) {
//比较交换
if(arr[j] > arr[j+1])
swap(arr, j, j+1);
}
}
}
/**
*
* @param arr 原数组
* @param i 需要交换的数组元素下标
* @param j 需要交换的数组元素下标
*/
private static void swap(int[] arr, int i, int j) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
2、测试数组辅助类
SortTestHelper.java
package DataStr;
public class SortTestHelper {
/**
*
* @param n 生成n个元素的随机数组
* @param rangeL 随机范围[rangeL
* @param rangeR rangeR]
* @return 返回一个随机 int 型数组
*/
public static int[] getRandomArray(int n, int rangeL, int rangeR) {
int[] arr = new int[n];
for(int i=0; i<n; i++) {
arr[i] = (int)(Math.random() * (rangeR - rangeL +1)) + rangeL;
}
return arr;
}
}
结果: