三种排序方法:选择排序,插入排序,冒泡排序

 1 public class Sort {
 2 
 3     /**
 4      * 
 5      * 各种排序方法
 6      * 
 7      * @param args
 8      * @return
 9      * @return
10      */
11     public static void main(String[] args) {
12 
13         int a[] = { 12, 34, 3, 56, 9, 23, 45, 19, 13, 10 };
14 
15         Sort aa = new Sort();
16         System.out.print("插入排序的结果:");
17         aa.printArray(aa.sort1(a));
18         System.out.println();
19 
20         System.out.print("选择排序的结果:");
21         aa.printArray(aa.insertionSort(a));
22         System.out.println();
23 
24         System.out.print("冒泡排序的结果:");
25         aa.printArray(aa.sort3(a));
26     }
27 
28     // 插入排序
29     public int[] sort1(int a[]) {
30         int temp = 0;
31         for (int i = 1; i < a.length; i++) { // 要排序的那个数
32             for (int j = 0; j < i; j++) { // 依次和前边排好数对比
33                 if (a[i] < a[j]) { // 当这个数a[i]小于前边的a[j]时
34                     temp = a[i];
35                     for (; i > j; i--) { // 开始插入数据,后边的数据依次往后边移,直到第i个数
36                         a[i] = a[i - 1];
37                     }
38                     a[j] = temp;
39                 }
40             }
41         }
42         return a;
43     }
44 
45     // 选择排序
46     public int[] insertionSort(int a[]) {
47         int temp;
48         for (int i = a.length - 1; i > 0; i--) {// 从最后一个开始循环替换成余下数的最大的数
49             int max = 0; // 每次初始化最大数的坐标为0
50             for (int j = 0; j <= i; j++) { // 循环找出最大数的下标,并赋值给max
51                 if (a[max] < a[j])
52                     max = j;
53             }
54             temp = a[i]; // 再把最大值和最后一个数交换
55             a[i] = a[max];
56             a[max] = temp;
57         }
58         return a;
59     }
60 
61     // 冒泡排序
62     public int[] sort3(int a[]) {
63 
64         for (int i = a.length - 1; i > 0; i--) { //从最后一个开始循环
65             for (int j = 0; j > i; j++) {//从第一个数据开始冒泡排序,
66                 if (a[j] > a[j + 1]) {    //如果左边的数大于相邻右边的,则交换位置
67                     int temp = a[j + 1];
68                     a[j + 1] = a[j];
69                     a[j] = temp;
70                 }
71             }
72         }
73         return a;
74     }
75 
76     // 打印数组
77     public void printArray(int a[]) {
78         for (int i = 0; i < a.length; i++) { // 打印排序后的数组
79             System.out.print(a[i]);
80             if (i != a.length - 1)
81                 System.out.print(",");
82         }
83     }
84 }

 

相关文章:

  • 2022-01-17
  • 2022-12-23
  • 2021-09-13
  • 2021-11-23
  • 2021-09-07
  • 2021-11-02
猜你喜欢
  • 2022-12-23
  • 2021-07-13
  • 2021-08-08
  • 2021-10-07
相关资源
相似解决方案