Java排序算法

  1
  2class zyfsort {
  3    public static void main (String[] args) {
  4        int gohome[] = new int[]{12,7,54,21,1,4,65,76,34,9,3,6};    
  5        System.out.println("插入排序算法");
  6//        InsertionSort(gohome);
  7        System.out.println("-------------------------------------------");
  8        System.out.println("选择排序算法");
  9//        SelectSort(gohome);
 10        System.out.println("-------------------------------------------");
 11        System.out.println("冒泡排序算法");
 12//        BubbleSort(gohome);
 13        System.out.println("-------------------------------------------");
 14        gohome =QuickSort(gohome);
 15        
 16        for (int t=0; t<gohome.length;t++)
 17        {
 18            System.out.print(gohome[t]+"--");
 19        }
 
 20    }

 21    
 22    //插入排序算法
 23    public static void InsertionSort(int[] goal)
 24    {    
 25        for (int i = 1; i<goal.length; i++)
 26        {    int now = i;
 27            int frank = goal[i];            
 28            while (now>0 && goal[now-1] <= frank)
 29            {
 30                goal[now]=goal[now-1];
 31                now--;            
 32            }

 33            goal[now]=frank;
 34            
 35        
 36        }
    
 37        
 38            
 39        for (int t=0; t<goal.length;t++)
 40        {
 41            System.out.print(goal[t]+"--");
 42        }

 43    }

 44    
 45    //选择排序算法    
 46    public static void SelectSort(int[] goal)
 47    {        
 48        int max;
 49        int stmp;    
 50        for (int i = 0; i<goal.length-1; i++)
 51        {
 52            max=i;
 53            for (int j = i+1; j<goal.length; j++)
 54                if(goal[j]>goal[max])
 55                    max=j;
 56                                    
 57            stmp = goal[i];
 58            goal[i]=goal[max];
 59            goal[max]=stmp;            
 60        
 61        }
    
 62        for (int t=0; t<goal.length;t++)
 63        {
 64            System.out.print(goal[t]+"--");
 65        }

 66            
 67    
 68    }

 69    
 70    //冒泡排序算法    
 71    public static void BubbleSort(int[] goal)
 72    {    int stmp;
 73        for (int i = 1; i< goal.length; i++)
 74        {
 75            for(int j=0; j<i;j++)
 76            {
 77                if(goal[i]>goal[j])
 78                {
 79                    stmp=goal[i];
 80                    goal[i]=goal[j];
 81                    goal[j]=stmp;    
 82                }
    
 83            }
    
 84    
 85        }

 86        for (int t=0; t<goal.length;t++)
 87        {
 88            System.out.print(goal[t]+"--");
 89        }

 90    }

 91    
 92    //快速排序算法
 93    public static int[] QuickSort(int[] number) {
 94      QuickSort(number, 0, number.length-1);
 95      return number ;
 96      }

 97    private static void QuickSort(int[] number,int left, int right) {
 98        int stmp;
 99      if(left < right) {
100          System.out.println(left+" | "+right+" | "+(left+right)/2);
101          int s = number[(left+right)/2];
102          int i = left - 1;
103          int j = right + 1;
104          while(true) {
105                // 向右找
106                while(number[++i] > s) ;
107                  // 向左找
108                while(number[--j] < s) ;
109                  if(i >= j)
110                      break;             
111                stmp = number[i];
112                  number[i] = number[j];
113                  number[j] = stmp;              
114              }

115          QuickSort(number, left, i-1); // 对左边进行递回
116          QuickSort(number, j+1, right); // 对右边进行递回
117      }
     
118      }

119 }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值