java例题_28 冒泡排序

 1 /*28 【程序 28 排序算法】 
 2 题目:对 10 个数进行排序 
 3 程序分析:可以利用选择法,即从后 9 个比较过程中,选择一个最小的与第一个元素交换, 下次类推,
 4 即用第二个元素与后 8 个进行比较,并进行交换。 
 5 */
 6 /*分析
 7  * 冒泡排序法:
 8  * 利用数组得到键盘上的一组数据并保存,再通过冒泡排序法得到新的数组
 9  * 使用两层for循环,外面一层判断排序排到哪儿了,里面一层用于遍历剩下需要排序的数
10  * 
11  * */
12 
13 package homework;
14 
15 import java.util.Scanner;
16 
17 public class _28 {
18 
19     public static void main(String[] args) {
20         // 从键盘得到一个包含10个整数的数组
21         System.out.println("请输入一个包含10个整数的数组:");
22         Scanner sc = new Scanner(System.in);
23         int[] a = new int[10];
24         // 利用for循环将数字存入数组a[]中
25         for (int i = 0; i < a.length; i++) {
26             a[i] = sc.nextInt();
27         }
28 //        //测试数组的数据 12 123 11 2 4 1 54 65 23 10
29 //        for (int i = 0; i < a.length; i++) {
30 //            System.out.print(a[i]+" ");
31 //        }
32 
33         int t; // 声明一个中间量,用于交换位置是临时储存
34         // 第一层,记录排序排到哪儿了
35         for (int i = 0; i < a.length; i++) {
36 
37             // 第二层,遍历还需要排序的数
38             for (int j = 0; j < (a.length - 1); j++) { // a.length-1是因为判断大小时的需要(下面加1了)
39                 if (a[j] > a[j+1]) { // 有小到大排列,若是由大到小则是<
40                     // 交换位置
41                     t = a[j];
42                     a[j] = a[j+1];
43                     a[j+1] = t;
44                 }
45 //                System.out.println(i+" "+j);   //测试
46             }
47 
48         }
49         for (int i = 0; i < a.length; i++) {
50             System.out.print(a[i] + " ");
51         }
52 
53     }
54 
55 }

猜你喜欢

转载自www.cnblogs.com/scwyqin/p/12313837.html