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]+" ");
}
}
}