首页 > 编程语言 > 详细

常见排序——Java实现

时间:2020-03-29 22:14:34      阅读:66      评论:0      收藏:0      [点我收藏+]
技术分享图片
 1 package struct;
 2  
 3 /**
 4  * 
 5  * @作者:dyy
 6  * @公司:陕西科技大学
 7  * @修改日期:
 8  * @邮箱:1101632375@qq.com
 9  * @描述:Java实现几种常见排序
10  */
11  
12  
13 //选择排序类
14 class SelectSort{
15     public void selectSort(int[] arr){
16         for(int i = 0;i < arr.length; i++){
17             int currentMax = i;//记录当前的最大值下标
18             for(int j = i + 1;j < arr.length;j++){
19                 //找到最大值下标
20                 if(arr[j] > arr[currentMax]){
21                     currentMax = j;
22                 }
23             }
24             int temp = arr[i];
25             arr[i] = arr[currentMax];
26             arr[currentMax] = temp;
27         }
28     }
29     public void print(int[] arr){
30         for(int i = 0;i<arr.length;i++){
31             System.out.print(arr[i]+" ");
32         }
33     }
34 }
35  
36  
37 //冒泡排序类
38 class BubbleSort{
39         //冒泡排序的实现
40         public void bubbleSort(int[] arr){
41             for(int i = 0;i < arr.length - 1;i++){
42                 for(int j = 0;j < arr.length - 1 - i;j++){
43                     if(arr[j] < arr[j+1]){
44                         int temp = arr[j];
45                         arr[j] = arr[j+1];
46                         arr[j+1] = temp;
47                     }
48                 }
49             }
50         }
51         //打印数组
52         public void print(int[] a){
53             for(int i =0 ;i<a.length;i++){
54                 System.out.print(a[i]+" ");
55             }
56         }
57 }
58  
59  
60 //插入排序
61 class InsertSort{
62     public void insertSort(int[] arr){
63         for(int i = 0; i < arr.length - 1;i++){
64             //将第一个元素当作排好序的
65             int j;
66             int insert = arr[i];
67             for(j = i;j > 0 && insert>arr[j-1];j--){
68                 arr[j] = arr[j-1];
69             }
70             arr[j] = insert;
71         }
72     }
73     
74     //打印数组
75             public void print(int[] a){
76                 for(int i =0 ;i<a.length;i++){
77                     System.out.print(a[i]+" ");
78                 }
79             }
80 }
View Code
技术分享图片
 1 public class TestVeriousSort {
 2     public static void main(String[] args) {
 3         int[] arr1 = {13,2,6,34,1,4,9,7,5};
 4         //选择排序
 5         System.out.println("选择排序"+"\n");
 6         SelectSort obj = new SelectSort();
 7         System.out.println("初始的数组:");
 8         obj.print(arr1);
 9         System.out.println("\n"+"排序后的数组:");
10         obj.selectSort(arr1);
11         obj.print(arr1);
12         
13         //冒泡排序
14         System.out.println("\n"+"冒泡排序"+"\n");
15         BubbleSort obj1 = new BubbleSort();
16         System.out.println("初始的数组:");
17         obj1.print(arr1);
18         System.out.println("\n"+"排序后的数组:");
19         obj1.bubbleSort(arr1);
20         obj1.print(arr1);
21         
22         //插入排序
23         System.out.println("\n"+"冒泡排序"+"\n");
24         InsertSort obj2 = new InsertSort();
25         System.out.println("初始的数组:");
26         obj2.print(arr1);
27         System.out.println("\n"+"排序后的数组:");
28         obj2.insertSort(arr1);
29         obj2.print(arr1);
30     }
31 }
View Code

 

常见排序——Java实现

原文:https://www.cnblogs.com/edda/p/12595050.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!