|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
package com.itheima_04;
public class Test5 {
public static void main(String[] args) {
int[] arr = {1,3,4,2,0,9,89,1};
//调用方法排序
//sort(arr);
print_mo(arr);
print_array(arr);
}
/*
* 选择排序:
* i j
* arr[0] arr[1]
* arr[0] arr[2]
* arr[0] arr[3]
* arr[1] arr[2]
* arr[1] arr[3]
* arr[2] arr[3]
* i是外层循环长度是length-1
* j是内层循环,长度是length,与i的关系是i+1+j
* 其中,j因该是从i+1开始,然后j++
* 当判断到arr[i]>arr[j]时,arr[i]与arr[j]交换位置
* */
public static void sort(int[] arr){
for (int i = 0;i<arr.length-1;i++){
for (int j = i+1;j <arr.length;j++){
if (arr[i]>arr[j]){
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
}
public static void print_array(int[] arr){
System.out.print("[");
for (int i = 0;i < arr.length;i++){
if (i==arr.length-1){
System.out.println(arr[i]+"]");
}else{
System.out.print(arr[i]+",");
}
}
}
/*
* 冒泡排序:
* j j+1
* 第一次
* arr[0] arr[1]
* arr[1] arr[2]
* arr[2] arr[3]
* 第二次
* arr[0] arr[1]
* arr[1] arr[2]
* 第三次
* arr[0] arr[1]
*
* for(int i = 0; i< arr.length-1;i++){
* for(int j = 0;j <arr.length-i-1;j++){
* if(arr[j]>arr[j+1]){
* int temp = arr[j];
* arr[j] = arr[j+1];
* arr[j+1] = temp;
* }}}
* 其中i控制比较的次数,j控制索引
* arr.length-i-1, debug一下:
* 4-0-1 =3;内层循环3次,j的值分别是0,1,2
* 4-1-1 =2;内层循环2次,j的值分别是0,1
* 4-2-1 =1;内层循环1次,j的值分别是0
* 注:-1是为了Index异常
* */
public static void print_mo(int[] arr){
for (int i = 0;i < arr.length-1;i++){
for (int j = 0;j < arr.length-i-1;j++){
if (arr[j]>arr[j+1]){
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}
}
|
|