冒泡排序

冒泡排序

冒泡排序是一种简单的交换排序,基本思路是: 从数列左边开始扫描排序的元素,在扫描过程中一次对相邻元素进行比较,将较大的元素后移(这是从小到大的排序), 每经过一轮的比较,最大的元素将移到末尾,此时几下元素位置,下一轮只需要比较到此位置即可 (int j=0;j<array.length-i-1;j++)这样就能让每一轮的比较少比一个元素。

从大到小只需要改变if语句里面的交换即可,这里可以有许多改法,其实排序是一种思路, 比如我们下面的代码是写的从小到大,我们现在如果要变成从大到小,我们只需要将最后输出的时候,从最后一个元素开始输出 就能变成从大到小,下面的代码我会写出来。

 package Chapter5;
 
 public class NumberSort {
  public static void main(String agrs[]){
  int[] array={0,4,3,7,1,9,2,6,5,8};
  System.out.print("数组排序前的顺序为:");
  for(int i=0;i<array.length;i++){           //输出数组中的每一个元素
  System.out.print(array[i]+" ");
  }
 
  int temp;                                 //存储交换的变量值
  for(int i=0;i<array.length-1;i++){     //比较n-1轮
  for(int j=0;j<array.length-i-1;j++){  //每轮比较
  if(array[j]>array[j+1]){      //从小到大的算法
  temp=array[j];
  array[j]=array[j+1];
  array[j+1]=temp;
  }
  }
  }
  System.out.println();
  System.out.print("数组排序后的顺序为:"); //输出数组中的每个元素(从小到大)
  for(int i=0;i<array.length;i++){
  System.out.print(array[i]+" ");
  }
 
  /*System.out.print("数组排序后的顺序为:"); //输出数组中的每个元素(从大到小)
  for(int i=array.length-1;i>=0;i--){   //i=array.length-1这里减一是因为array.length==10,而数组是0~9
  System.out.print(array[i]+" ");
  }*/
 
  }
 }
 

 

posted on 2021-04-23 23:32  小明不会写代码  阅读(199)  评论(0)    收藏  举报

导航