Java基础——选择排序、冒泡排序

1.选择排序

原理是直接从待排序数组里选择一个最小(或最大)的数字,每次都拿一个最小数字出来,

顺序放入新数组,直到全部拿完

代码演示:

 

 1 public class Test3 {
 2     public static void main(String[] args) {
 3         int[] arr = { 3, 9, 81, 8, 5, 10 };
 4         selectSort(arr);
 5         print(arr);
 6     }
 7 
 8     /* 选择排序:原理是第i个元素和剩余元素的比较次数 */
 9     public static void selectSort(int[] arr) {
10         for (int i = 0; i < arr.length - 1; i++) {
11             for (int j = i + 1; j < arr.length; j++) {
12                 if (arr[i] > arr[j]) {
13                     int temp = arr[i];
14                     arr[i] = arr[j];
15                     arr[j] = temp;
16                 }
17             }
18         }
19     }
20 
21     /* 排序后打印函数 */
22     public static void print(int[] arr) {
23         System.out.print("{");
24         for (int i = 0; i < arr.length; i++) {
25             if (i < arr.length - 1)
26                 System.out.print(arr[i] + ",");
27             else
28                 System.out.print(arr[i]);
29         }
30         System.out.print("}");
31     }
32 }

 第10行的for循环控制的是总的比较次数,第11行for循环控制的是第i个数(最小值或最大值)和剩余的比较次数

 

2.冒泡排序

原理是临近的数字两两进行比较,按照从小到大或者从大到小的顺序进行交换,

这样一趟过去后,最大或最小的数字被交换到了最后一位,

然后再从头开始进行两两比较交换,直到倒数第二位时结束

代码示例:

 1 public class Test4 {
 2     public static void main(String[] args) {
 3         int[] arr = { 3, 9, 81, 8, 5, 10 };
 4         bubbleSort(arr);
 5         print(arr);
 6     }
 7 
 8     public static void bubbleSort(int[] arr) {
 9         for (int i = 0; i < arr.length - 1; i++) {
10             for (int j = i; j < arr.length; j++) {
11                 if (arr[i] > arr[j]) {
12                     int temp = arr[i];
13                     arr[i] = arr[j];
14                     arr[j] = temp;
15                 }
16             }
17         }
18     }
19 
20     /* 排序后打印函数 */
21     public static void print(int[] arr) {
22         System.out.print("{");
23         for (int i = 0; i < arr.length; i++) {
24             if (i < arr.length - 1)
25                 System.out.print(arr[i] + ",");
26             else
27                 System.out.print(arr[i]);
28         }
29         System.out.print("}");
30     }
31 }

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。