针对数组的三中排序方式:冒泡排序,选择排序,插入排序

AVA在运用数组进行排序时,已经封装好了排序的方法:快速排序法主要是运用了Arrays中的一个方法Arrays.sort()实现。

普通的算法包括了:

1.冒泡法是运用遍历数组进行比较,通过不断的比较将最小值或者最大值一个一个的遍历出来。

2.选择排序法是将数组的第一个数据作为最大或者最小的值,然后通过比较循环,输出有序的数组。

3.插入排序是选择一个数组中的数据,通过不断的插入比较最后进行排序。下面我就将他们的实现方法一一详解供大家参考。

 

 1 /**
 2  * 数组排序操作
 3  * 
 4  * @author lpp
 5  * 
 6  */
 7 public class Sort {
 8     public static void main(String[] args) {
 9         int[] arr = { 5,1,4,2,6};
10         // bubbleSort(arr);
11         // chooseSort(arr);
12         insertSort(arr);
13     }
14 
15     // 冒泡排序
16     public static void bubbleSort(int[] arr) {
17         // 外层循环只控制次数,内层循环控制逻辑
18         int temp = 0;
19         for (int i = 0; i < arr.length; i++) {
20             for (int j = 0; j < arr.length - i - 1; j++) {
21                 if (arr[j] > arr[j + 1]) {
22                     // 相互交换
23                     temp = arr[j];
24                     arr[j] = arr[j + 1];
25                     arr[j + 1] = temp;
26                 }
27             }
28         }
29 
30         // 显示
31         for (int i : arr) {
32             System.out.println(i);
33         }
34     }
35 
36     // 选择排序
37     public static void chooseSort(int[] arr) {
38         int minTemp = 0;
39         for (int i = 0; i < arr.length - 1; i++) {
40             for (int j = i + 1; j < arr.length; j++) {
41                 if (arr[j] < arr[i]) {
42                     // 交换数据
43                     minTemp = arr[j];
44                     arr[j] = arr[i];
45                     arr[i] = minTemp;
46                 }
47             }
48         }
49 
50         // 显示
51         for (int i : arr) {
52             System.out.println(i);
53         }
54     }
55 
56     // 插入排序{2,1,4,3}
57     public static void insertSort(int[] arr) {
58         // 被选择的数
59         int select = 0;
60         for (int i = 1; i < arr.length; i++) {
61             //记录要被插入的数值
62             select = arr[i];
63             int j = 0;
64             for (j = i; j > 0 && arr[j - 1] >= select; j--) {
65                 //此处执行的是一个右移操作
66                 arr[j] = arr[j - 1];
67             }
68             // 把小的值向前插入
69             arr[j] = select;
70         }
71 
72         // 显示
73         for (int i : arr) {
74             System.out.println(i);
75         }
76     }
77 }

 

转载于:https://www.cnblogs.com/fuck1/p/5868813.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值