常用Java排序算法

常用Java排序算法

冒泡排序 、选择排序、快速排序

 1 package com.javaee.corejava;
 2 
 3 public class DataSort {
 4 
 5     public DataSort() {
 6         // TODO Auto-generated constructor stub
 7     }
 8 
 9     public static void main(String[] args) {
10         int[] p = { 34, 21, 54, 18, 23, 76, 38, 98, 45, 33, 27, 51, 11, 20, 79,  
11                 30, 89, 41 };  
12   
13         long start = System.currentTimeMillis();  
14   
15         DataSort.bubbleSort(p);// 冒泡排序  
16         //DataSort.selectSort1(p);// 选择排序 1 
17         //DataSort.selectSort2(p);// 选择排序2  
18         //DataSort.quickSort(p, 0, p.length - 1);// 快速排序  
19   
20         System.out.println("所用时间:" + (System.currentTimeMillis() - start));  
21         for (int i = 0; i < p.length; i++) {  
22             System.out.print(p[i] + " ");  
23         }  
24 
25     }
26     //冒泡排序
27     public static void bubbleSort(int[] data){
28         for(int i=0;i<data.length-1;i++){
29             for(int j=0;j<data.length-i-1;j++){
30                 if(data[j]>data[j+1]){
31                     int temp=data[j];
32                     data[j]=data[j+1];
33                     data[j+1]=temp;
34                 }
35             }
36         }
37     }
38     //选择排序1
39     public static void selectSort1(int[] data){
40         if(data==null||data.length==0){
41             return;
42         }
43         for(int i=0;i<data.length-1;i++){
44             int min=i;
45             for(int j=i+1;j<data.length;j++){
46                 if(data[j]<data[min]){
47                     min=j;
48                 }
49             }
50             if(i!=min){
51                 int temp=data[i];
52                 data[i]=data[min];
53                 data[min]=temp;
54             }
55         }
56     }
57     //选择排序2
58     public static void selectSort2(int[] data){
59         for(int i=0;i<data.length-1;i++){
60             for(int j=i+1;j<data.length;j++){
61                 if(data[i]>data[j]){
62                     int temp=data[i];
63                     data[i]=data[j];
64                     data[j]=temp;
65                 }
66             }
67         }
68     }
69     //快速排序
70     public static void quickSort(int[] data,int start,int end){
71         int key=data[start];
72         int i=start;
73         int j=end;
74         while(i<j){
75             while(data[j]>key&&i<j){
76                 j--;
77             }
78             data[i]=data[j];
79             while(data[i]<key&&i<j){
80                 i++;
81             }
82             data[j]=data[i];
83         }
84         data[i]=key;
85         if(i-1>start){
86             quickSort(data,start,i-1);
87         }
88         if(i+1<end){
89             quickSort(data,i+1,end);
90         }
91     }
92 
93 }

 

 

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