数组常用的三种排序

 1 class Arithmetic{
 2    public static void main(String args []){
 3          System.out.println("\t\t\t===冒泡排序===");
 4          int[] num1 = {3,6,2,4,8};
 5          //原理:将数组的元素两两作比较,然后依次将最大值往后面排
 6          for(int i = 0; i < num1.length; i++){
 7              for(int k = 0; k < num1.length-i-1; k++){
 8                  if(num1[k] > num1[k+1]){
 9                        int temp = num1[k+1];
10                        num1[k+1] =num1[k];
11                        num1[k] = temp;
12                    }
13               }
14           }
15          for(int element:num1){
16              System.out.println(element);
17           }
18          
19          System.out.println("\t\t\t===选择排序===");
20          int[] num2 = {3,9,2,5,8};
21          //原理:从数组的下标从小到大遍历,然后依次将最小值往前面排
22          for(int i = 0; i < num2.length; i++){
23              for(int k = i+1; k < num2.length; k++){
24                  if(num2[i] > num2[k]){
25                        int temp = num2[i];
26                        num2[i] =num2[k];
27                        num2[k] = temp;
28                    }
29               }
30           }
31          for(int element:num2){
32              System.out.println(element);
33           }
34         
35          System.out.println("\t\t\t===插入排序===");
36          int[] num3 = {13,6,20,4,8};
37          //原理:每次将一个待排序的记录,按其关键字的大小插入
38          //到前面已经排好序的元素的适当位置,直到全部的记录插入完成为止。
39          for(int i = 1; i < num3.length; i++){
40              int temp = num3[i];
41              for(int k = i-1; k >=0; k--){
42                  if(num3[k] > temp){
43                        num3[k+1] = num3[k];
44                        num3[k] = temp
45                    }
46               }
47           }
48          for(int element:num3){
49              System.out.println(element);
50           }
51      }
52 }

 

posted @ 2016-11-15 13:07  阿水写程序  阅读(498)  评论(0编辑  收藏  举报