java吧 关注:1,269,735贴子:12,774,865
  • 18回复贴,共1

此bug 怎么解决 冒泡排序系列 12,13,54,1,6,8

只看楼主收藏回复

public class maopaopaixu {
public static void main(String[] args) {
int a[]={12,13,54,1,6,8};//尾数小于头数 就会先显示尾数。8 1 6 12 13 54
int index;
for(int i=1;i<a.length;i++){
index=0;
for(int j=1;j<a.length-i;j++){
if(a[index]<a[j]){
index=j;
}
}
int tmp=a[a.length-i];
a[a.length-i]=a[index];
a[index]=tmp;
}
System.out.println("冒泡排序前后顺序:");
for(int tmp:a){
System.out.print(tmp+" ");
}
}
}
复习遇到bug


1楼2017-07-05 12:15回复
    你完全没理解冒泡排序,错误可以说不在一行。建议你先在纸上用手写方式把冒泡排序每一步过程结果画画,理解好了再写代码。


    IP属地:陕西来自iPhone客户端3楼2017-07-05 12:30
    收起回复
      2025-07-17 17:12:16
      广告
      厉害了


      5楼2017-07-05 16:38
      回复
        还写个index干嘛 直接用i不就好了?


        来自Android客户端7楼2017-07-06 12:26
        收起回复
          class Main{
          public static void main(String []args){
          int[]arr={12,13,14,58,8};
          for(int j=0;j<arr.length;j++){
          for(int i=j;i<arr.length-j-1;i++)
          {
          if(arr[i]<arr[i+1]){
          int temp=arr[i+1];
          arr[i+1]=arr[i];
          arr[i]=temp;
          }
          }
          }
          for(int i=0;i<arr.length;i++){
          System.out.println(arr[i]);
          }
          }
          }


          IP属地:广东来自Android客户端8楼2017-07-06 13:52
          收起回复
            //冒泡排序 重点复习对象
            public class SZJAVD {
            public static void main(String[] args) {
            int[] a={64,1,75,46,7};//单排数组代数为a的一位数组 所拥有的数字为
            int[] b = a;
            for(int i=1;i<a.length;i++){//i=1说明不是从0开始。 a.length等于循环次数,a代表长度,length将长度专为循环次数。
            for(int j=0;j<a.length-i;j++){//当目标达到正确位置时,a.length-i相当循环最大值减一,i的初始值是1。这时长度为a.length-i就是5-1.
            if(a[j]>a[j+1]){
            b = a; a = b;//起到刷新a的作用
            int temp=a[j+1];
            a[j+1]=a[j];
            a[j]=temp;
            }
            }
            }
            System.out.println("选择排序的结果为:");
            for(int temp:a){
            System.out.print(temp+" ");
            }
            }
            }
            /* *号为布尔值为真值输出
            64<1+1 *1<1+1 75<1+1 46<1+1 7<1+1 1 64<1+1 *1<1+1 75<1+1 46<1+1 7<1+1
            64<7+1 75<7+1 46<7+1 *7<7+1 7 64<7+1 1<7+1 75<7+1 46<7+1 *7<7+1
            64<46+1 75<46+1 *46<46+1 46 64<46+1 1<46+1 75<46+1 *46<46+1 7<46+1
            *64<64+1 75<64+1 64 *64<64+1 1<64+1 75<64+1 46<64+1 7<64+1
            *75<75+1 75 64<75+1 1<75+1 *75<75+1 46<75+1 7<75+1
            */
            //第二种方法:
            /*public class SZJAVD {
            public static void main(String[] args) {
            int array[]={77,65,98,66,78,69};
            BubbleSort sorter=new BubbleSort();
            sorter.sort(array);
            }
            public void sort(int[]array){
            for(int i=1;i<array.length;i++){
            for(int j=0;j<array.length-i;j++){
            if(array[j]>array[j+1]){
            int temp=array[j];
            array[j]=array[j+1];
            array[j+1]=temp;
            }
            }
            }
            sortArray(array);
            }
            public void sortArray(int[]array){
            System.out.print("冒泡排序前后顺序:");
            for(int i:array){
            System.out.print(" "+i);
            }
            System.out.println("");
            }
            }
            //冒泡排序 调动俩个公共成员,一个负责计算,一个负责输出。分工合理。*/


            9楼2017-07-07 18:47
            收起回复