/*
* 冒泡排序
* 1、返回值類型,void
* 2、參數(shù)列表,int[] arr
*
*? 第一次:arr[0]與arr[1],arr[1]與arr[2],arr[2]與arr[3],arr[3]與arr[4]作比較
*? 第二次:arr[0]與arr[1],arr[1]與arr[2],arr[2]與arr[3]作比較
*? 第三次:arr[0]與arr[1],arr[1]與arr[2]作比較
*? 第四次:arr[0]與arr[1]作比較
*/
int[] arr = {12,33,20,10,55};
//bubbleSort(arr);
selectSort(arr);
print(arr);
public static void bubbleSort(int[] arr){
? ? ? ?for (int i = 0; i < arr.length-1; i++) {? ? ? ? //外循環(huán),只需要比較arr.length-1次就可以了
? ? ? ?for (int j = 0; j < arr.length-1-i; j++) {? //-1為了防止索引越界,-i為了提高效率
? ? ? ? ? ? ?if(arr[j] > arr[j+1]) {
/*int team = arr[j];
arr[j] = arr[j + 1];
arr[j+1] = team;*/
? ? ? ? ? ? swap(arr,j,j);
}
}
}
/*
* 打印方法
* 1、返回值類型,void
* 2、參數(shù)列表,int[] arr
*/
}
public static void print(int[] arr) {
? ? ? ? ? for (int i = 0; i < arr.length; i++) {
? ? ? ? ?System.out.print(arr[i] + " ");
}
}
/*選擇排序
* 返回值類型,void
* 參數(shù)列表,int[] arr
*
* 第一次:arr[0]與arr[1-4]比較,比較4次
* 第二次:arr[1]與arr[2-4]比較,比較3次
* 第三次:arr[2]與arr[3-4]比較,比較2次
* 第四次:arr[3]與arr[4]比較,比較1次
*
*/
public static void selectSort(int[] arr){
? ? ? ? ? for (int i = 0; i < arr.length-1; i++) {? ? ? ? ? //外循環(huán),只需要比較arr.length-1次就可以了
? ? ? ? ?for (int j = i + 1; j < arr.length; j++) {
? ? ? ? if(arr[i] > arr[j]) {
/*int team = arr[i];
arr[i] = arr[j];
arr[j] = team;*/
? ? ? ?swap(arr,i,j);
}
}
}
}
/*
* 換位操作
* 返回值類型,void
* 參數(shù)列表,int[] arr ,int i ,int j
*
* 如果某個(gè)方法只針對本類使用,不想讓其他類使用,那就將這個(gè)方法定為私有
*/
private static void swap(int[] arr,int i,int j) {
? ? ? ? ? ?int temp = arr[i];
? ? ? ? ? arr[i] = arr[j];
? ? ? ? ? arr[j] = temp;
}
}