import java.util.Arrays;
public class SortTest {
public static void main(String[] args) {
int[] arry1 = { 8,6,2,1,7,5,3,4,9};
bubbleSort(arry1);
System.out.println(Arrays.toString(arry1));
int[] arry2 = { 8,6,2,1,7,5,3,4,9};
insertSort(arry2);
System.out.println(Arrays.toString(arry2));
int [] arry3={8,6,2,1,7,5,3,4,9};
selectionSort(arry3);
System.out.println(Arrays.toString(arry3));
}
/*
* 冒泡
*/
public static void bubbleSort(int[] arry) {
for (int i = 0; i < arry.length; i++) {
for (int j = 0; j < arry.length - i - 1; j++) {
if (arry[j] > arry[j + 1]) {
arry[j]^=arry[j+1];
arry[j+1]^=arry[j];
arry[j]^=arry[j+1];
}
}
}
}
/*
* 插入排序
*/
public static void insertSort(int[] arry) {
for (int i = 1; i < arry.length; i++) {
//循环迭代,从1到ary.length外层迭代,
//把下标1到ary.length对应的元素插入到
//前半已经排序的数组中
int firstOne = arry[i];
int insertIndex = i;
for (int j = i - 1; j >= 0 && firstOne < arry[j]; j--) {
//取第一个未排序的元素,从后往前逐一与
//已经排序的元素比较,如果第一个元素比被比较元素
//小,就移动被比较元素,否则就插入到当前位置。
arry[j + 1] = arry[j];
insertIndex = j;
}
arry[insertIndex] = firstOne;
}
}
/*
* 选择排序
*/
public static void selectionSort(int[] arry) {
//每次找个最小的
for (int i = 0; i < arry.length - 1; i++) {
// 每次在i到ary.length 范围内找一个最小的
int min = arry[i];
int minIndex = i;
for (int j = i + 1; j < arry.length; j++) {
if (min > arry[j]) {
min = arry[j];
minIndex = j;
}
}//换到排序结果的最后一个位置上
int temp = arry[i];
arry[i] = arry[minIndex];
arry[minIndex] = temp;
}
}
}
冒泡,插入,选择排序
最新推荐文章于 2025-08-17 21:38:20 发布