代码改变世界

Java数组3(2015-8-27)

2015-08-27 13:43  马尔代夫_珍  阅读(223)  评论(0编辑  收藏  举报

1、

冒泡排序:有N个数,要比较N-1轮,第一轮比较了N-1次。每增加一轮,次数就会减少一次,则为N-1-i;选择排序法:有N个数,比较N-1次,第一轮找到最小值,放到下标最小的位置上,第二轮找剩下的最小值,如果该值没有在下标第二小的位置上,则把其放到该位置上。

/*
冒泡排序(BubbleSort)的讲解:降序 / 升序。(比较相邻的两个数据)
口诀:两两相比较,小靠前,外循环N-1次,内循环N-1-i次。
*/
public class Test3{
 public static void main(String[] args){
  //--定义个数组
  int[] arr = new int[]{7,2,10,9,45,3};
  //--临时变量
  int temp = 0;
  //最外层比较的次数为:数组的长度-1。N个数比较的轮数为N-1
  for(int i=0;i<arr.length-1;i++){
                  //每一轮比较的次数为N-1-i;第一轮后最大值找到放最后,则下一次比较次数少一。
   for(int j=0;j<arr.length-1-i;j++){
    //--比较两个数据
    if(arr[j]<arr[j+1]){
     int temp = arr[j]; 
     arr[j] = arr[j+1];
     arr[j+1] = temp;
    }
   }
  }
  for(int i=0;i<arr.length;i++){
   System.out.print(arr[i]+" ");
  }
 }
}

2、从键盘输入5个数,用冒泡法按降序排序并输出。

import java.util.Scanner;
public class FourTest{
 public static void main(String[] args){
  //  5,2,3,6,9
  //  5,3,6,9,2
  int[] arr = new int[5];
  int temp;
  Scanner scan = new Scanner(System.in); 
  for(int i=0;i<5;i++){
   System.out.print("请输入第"+(i+1)+"个数据:");
   int number = scan.nextInt();
   arr[i] = number;
  }
  System.out.println("5个数据全部输入完毕!!!");
  for(int i=0;i<arr.length-1;i++){
   for(int k = 0;k<arr.length-1-i;k++){
    //--数据的比较
    if(arr[k]<arr[k+1]){
     temp = arr[k];
     arr[k] = arr[k+1];
     arr[k+1] = temp;
    }
   } 
  }
  for(int i=0;i<arr.length;i++){
   System.out.print(arr[i]+" ");
  }
 }
}