java 排序

写道
package com.face; 

import java.util.Arrays; 
import java.util.Random; 

public class Que { 
/** 
* 方法一和方法二皆为冒泡排序,丙者的效率要看具体的情况,大数据量且没有规律的,从理论上说是第二种方法稍快 
* 
* 方法getIndex()是二分法查找某整形数组里某一个数字的位置 
* 
* 
* @param a 
*/ 
public static void firstPX(int[] a) { 

int temp; 
for(int i=0;i<a.length;i++) { 
for(int j=i+1;j<a.length;j++) { 
if(a[i]>a[j]) { 
temp=a[i]; 
a[i]=a[j]; 
a[j]=temp; 
} 
} 
} 
} 
public static void secondPX(int[] a) { 

int k,temp; 
for(int i=0;i<a.length;i++) { 
k=i; 
for(int j=k+1;j<a.length;j++) { 
if(a[k]>a[j]) { 
temp=a[k]; 
a[k]=a[j]; 
a[j]=temp; 
} 
} 
if(k!=i) { 
temp=a[k]; 
a[k]=a[i]; 
a[i]=temp; 
} 
} 

} 
public static void choose(int[] a) {
  int min,temp;
  for(int i=0;i<a.length;i++) {
   min=i;
   for(int j=i+1;j<a.length;j++) {
    if(a[j]<a[min]) {
     min=j;
    }
   }
   if(min!=i) {
    temp=a[min];
    a[min]=a[i];
    a[i]=temp;
   }
  }
  pl(a);
 }
public static int getIndex(int[] a,int num) { 
secondPX(a); 
int startIndex=0; 
int endIndex=a.length-1; 

while(startIndex<endIndex) { 
int midIndex=(startIndex+endIndex)/2; 
if(a[midIndex]==num)return midIndex; 
if(a[midIndex]>num) { 
endIndex=midIndex; 
}else { 
startIndex=midIndex; 
} 
} 
return -1; 
} 
public static void pl(int[] a) { 
for(int i=0;i<a.length;i++) { 
System.out.print(a[i]+" "); 
} 
System.out.println(); 
} 
//23125 
//23266 
//15 
public static void main(String[] args) { 
//int[] a= {1,2,6,456,47,24,654,88,243,4,56,6756,3,368,30,243,2467,3144,65,43,1,34,45,34,20345}; 
int[] b=new int[100000]; 

Random rd=new Random(2000); 
for(int j=0;j<100000;j++) { 

b[j]=rd.nextInt(); 
} 
long c=System.currentTimeMillis(); 
//secondPX(b); 
//firstPX(b); 
Arrays.sort(b); 
System.out.println(System.currentTimeMillis()-c); 
// 
//pl(a); 
//System.out.println(getIndex(a,30)); 
} 

} 

 

 

你可能感兴趣的:(java,C++,c,C#,J#)