1.冒泡排序
冒泡排序的基本思想是比较相邻的元素值,如果满足条件就交换元素值,把较小的元素移动到数组前面,把较大的元素移动到数组后面。交换两个元素的位置。
import java.util.Arrays;
/**
* @author qx
* @date 2023/06/04
* @desc 冒泡排序
*/
public class BubbleSort {
public static void main(String[] args) {
// 创建一个整形数组
int[] arr = {45, 18, 27, 36, 25};
sort(arr);
System.out.println(Arrays.toString(arr));
}
/**
* 冒泡排序
*
* @param array 数组
* @return 冒泡排序后的数组
*/
private static int[] sort(int[] array) {
for (int i = 1; i < array.length; i++) {
for (int j = 0; j < array.length - i; j++) {
// 比较两个相邻的元素,较大的元素往后冒泡
if (array[j] > array[j + 1]) {
// 存储较大的元素到一个临时变量
int temp = array[j];
// 把较小的元素往前排
array[j] = array[j + 1];
// 把较大的元素排在后面
array[j + 1] = temp;
}
}
}
return array;
}
}
2.直接选择排序
直接选择排序的基本思想是将指定排序位置元素与其他数组元素分别对比,如果满足条件就交换元素值,不是交换相邻元素,而是把满足条件的元素与指定的排序位置元素交换。这样排序号的位置逐渐扩大,直到把整个数组都变成已排序好的格式。
/**
* @author qx
* @date 2023/06/05
* @desc 选择排序
*/
public class SelectSort {
public static void main(String[] args) {
int[] array = {70, 8, 36, 11, 6, 23};
sort(array);
}
private static void sort(int[] array) {
int index;
for (int i = 1; i < array.length; i++) {
index = 0;
for (int j = 1; j <= array.length - i; j++) {
if (array[j] > array[index]) {
index = j;
}
}
// 交换在位置array.length-i和index上的两个数
int temp = array[array.length - i];
array[array.length - i] = array[index];
array[index] = temp;
}
showArray(array);
}
/**
* 遍历数组
*/
private static void showArray(int[] array) {
for (int temp : array) {
System.out.print(">" + temp);
}
System.out.println();
}
}