C.R

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

java版快速排序,插入排序,冒泡排序

Posted on 2013-03-15 09:37  lvbinrain  阅读(125)  评论(0)    收藏  举报
 1 package com.cr.excecise;
 2 
 3 public class Sort {
 4 
 5     public static void main(String[] args) {
 6         int num[] = {1,231,4,65,7,8,0,232,151,734,32131};
 7         //quickSort(num,0,10);
 8         //bubbleSort(num);
 9         insertionSort(num,0,10);
10         for(int temp:num) System.out.print(temp+" ");
11     }
12     
13     
14     //快速排序
15     static void quickSort(int []num, int begin, int end){
16         if(begin>=end) return;
17         int i= begin;
18         int j= end;
19         int key = num[i];
20         
21         while(i<j){
22             while(i<j&&num[j]>=key)
23                 j--;
24             if(i<j)
25                 num[i++]=num[j];
26             while(i<j&&num[i]<=key)
27                 i++;
28             if(i<j)
29                 num[j--]=num[i];    
30         }
31         num[i]=key;
32         if(begin<i-1)
33             quickSort(num,begin,i-1);
34         if(i+1<end)
35             quickSort(num,i+1,end);
36     }
37     //冒泡排序
38     static void bubbleSort(int []num){
39         int length = num.length;
40         for(int i=0;i<length;i++){
41             for(int j=0;j<length-i-1;j++){
42                 int temp = num[j];
43                 if(num[j+1]<num[j]){
44                     num[j] = num[j+1];
45                     num[j+1] = temp;
46                 }
47             }
48         }
49     }
50     
51     
52     //插入排序
53     static void insertionSort(int []num,int begin,int end){
54         int temp,j;
55         for(int i=begin+1;i<=end;i++){
56             temp = num[i];
57             j=i-1;
58             
59             while(j>begin&&num[j-1]>temp){
60                 num[j] = num[j-1]; 
61                 j--;
62             }
63             num[j] = temp;
64         }
65     }
66 
67 }

记住这三种常用的排序方法!