[Java] 选择与排序算法 →→→→→进入此内容的聊天室

来自 , 2020-03-18, 写在 Java, 查看 152 次.
URL http://www.code666.cn/view/7895fc13
  1. /**
  2.  * 功能:排序算法的演示
  3.  */
  4. package com.text;
  5.  
  6. import java.util.Calendar;
  7.  
  8. public class Text2 {
  9.  
  10.         public static void main(String[] args) {
  11.                
  12.                 int len=100000;
  13.                
  14.                 int a[]=new int[len];
  15.                
  16.                 for (int i = 0; i < a.length; i++) {
  17.                         int t=(int)Math.random()*10000;
  18.                        
  19.                         a[i]=t;
  20.                 }
  21.                
  22. //              Quick quick=new Quick();
  23.                 Insert insert=new Insert();
  24.                 //在排序前打印系统时间
  25.                 Calendar cal=Calendar.getInstance();
  26.                 System.out.println("排序前:"+cal.getTime());
  27.                 insert.insertSort(a);
  28. //              quick.quickSort(0, a.length-1,a);
  29.                 cal=Calendar.getInstance();
  30.                 System.out.println("排序后:"+cal.getTime());
  31.                
  32.                 /*int a[]={1,5,2,15,6,-2,11,12,100,56,79,21,1000,566};
  33.                 Quick quick=new Quick();
  34.                 quick.quickSort(0, a.length-1,a);
  35.                 for (int i = 0; i < a.length; i++) {
  36.                         System.out.print("  "+a[i]);
  37.                 }*/
  38.  
  39.         }
  40.  
  41. }
  42.  
  43.  
  44. //选择排序
  45. class Insert{
  46.         int temp;
  47.         public void insertSort(int a[]){
  48.                 for (int i = 0; i < a.length-1; i++) {
  49.                         int min=a[i];
  50.                         //记录最小值的下标
  51.                         int minIndex=i;
  52.                         for (int j = i+1; j < a.length; j++) {
  53.                                 if (min>a[j]) {
  54.                                         //修改最小值
  55.                                         min=a[j];
  56.                                         minIndex=j;
  57.                                 }
  58.                         }
  59.                         temp=a[i];
  60.                         a[i]=a[minIndex];
  61.                         a[minIndex]=temp;
  62.                 }
  63.         }
  64.                
  65. }
  66.  
  67. //快速排序
  68. class Quick{
  69.         public void quickSort(int left,int right,int a[]){
  70.                 int l=left;
  71.                 int r=right;
  72.                 int pivot = a[(left+right)/2];
  73.                 int temp = 0;
  74.                
  75.                 while(l<r){
  76.                        
  77.                         while(a[l]<pivot)
  78.                                 l++;
  79.                         while(a[r]<pivot)
  80.                                 r--;
  81.                        
  82.                         if (l>=r)
  83.                                 break;
  84.                        
  85.                         temp=a[l];
  86.                         a[l]=a[r];
  87.                         a[r]=temp;
  88.                        
  89.                         if(a[l]==pivot)
  90.                                 --r;
  91.                         if(a[r]==pivot)
  92.                                 ++l;
  93.                 }
  94.                
  95.                 if(l==r){
  96.                         l++;
  97.                         r--;
  98.                 }
  99.                
  100.                 if(left<r) quickSort(left, r,a);
  101.                 if(r>right) quickSort(l, right,a);
  102.                        
  103.                        
  104.         }
  105. }

回复 "选择与排序算法"

这儿你可以回复上面这条便签

captcha