/**
* 选择排序
*/
public class Code01_SelectionSort {
public static void main(String[] args) {
int[] arr = {1,7,5,2,8,6,3};
selectionSort(arr);
printArr(arr);
}
public static void selectionSort(int[] arr){
if (arr == null || arr.length < 2){
return;
}
for (int i=0;i<arr.length-1;i++){
int minIndex = i;
for (int j=i+1;j<arr.length;j++){
minIndex = arr[j] < arr[minIndex] ? j : minIndex;
}
swap(arr,i,minIndex);
}
}
public static void swap(int[] arr,int i,int j){
int tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
}
public static void printArr(int[] arr){
for (int i=0;i<arr.length;i++){
System.out.println(arr[i]);
}
}
}
/**
* 冒泡排序
*/
public class Code02_BubbleSort {
public static void main(String[] args) {
int[] arr = {1,7,5,2,8,6,3};
bubbleSort(arr);
printArr(arr);
}
public static void bubbleSort(int[] arr){
if (arr == null || arr.length < 2){
return;
}
for (int i = arr.length-1;i>0;i--){
for (int j=0;j<i;j++){
if (arr[j] > arr[j+1]){
swap(arr,j,j+1);
}
}
}
}
public static void swap(int[] arr,int i,int j){
arr[i] = arr[i] ^ arr[j];
arr[j] = arr[i] ^ arr[j];
arr[i] = arr[i] ^ arr[j];
}
public static void printArr(int[] arr){
for (int i=0;i<arr.length;i++){
System.out.println(arr[i]);
}
}
}