查找数组中选择,冒泡的排序问题

选择排序

 

int [] arr={23,45,643,2,34};

 

for(int i=0;i<arr.length-1;i++){  //比较的次数

 

              for(int j=i+1;j<arr.length;j++){ //表示i后面的所有的数

 

                     if(arr[i]>arr[j]){//交换位置

 

       int temp=arr[i];

 

   arr[i]=arr[j];

 

   arr[j]=temp;

 

 }

 

  }

 

}

 

        //冒泡排序

 

       for(int i=0;i<arr.length-1;i++){//循环次数

 

 for(int j=arr.length-1;j>i;j--){

 

         if(arr[j]<arr[j-1]){

 

       int temp=arr[j];

 

   arr[j]=arr[j-1];

 

   arr[j-1]=temp;

 

 }

 

 }

 

 注意:选择排序 :一个数与剩下的每一个数比,每一次都会出现一个最值(主要取决你if语句中的判断条件),

   冒泡排序;每次比较的是相邻数字比较,可以选择正向或者逆向,取决你的第二层for循环起始位置

 

posted @ 2018-08-04 10:40  毛草根  阅读(83)  评论(0)    收藏  举报