java的一些常用排序算法的实现编程

xiaoxiao2021-02-28  74

public class Testt { private static int[] a={1,11,10,156,12,130,14,58,4,2,3,0}; public static void main(String[] args) { //insertSort(); //quickSort(0, a.length-1); maoSort(); System.out.println(Arrays.toString(a)); System.out.println(find(a,11,0,a.length-1)); } // 插入排序 public static void insertSort(){ for(int i=1;i<a.length;i++) { int insert=a[i]; int index=i-1; while(index>=0 && a[index]>insert) { a[index+1]=a[index]; index--; } a[index+1]=insert; } } / /快速排序 public static void quickSort(int start,int end) { if(start<end) { int i=start,j=end,temp=a[start]; while(i<j) { while(a[j]>=temp && i<j) j--; if(i<j) a[i++]=a[j]; while(a[i]<temp && i<j) i++; if(i<j) a[j--]=a[i]; } a[i]=temp; quickSort(start, i-1); quickSort(i+1, end); } } // 冒泡排序 public static void maoSort() { for(int i=0;i<a.length;i++) { for(int j=i+1;j<a.length;j++) { if(a[j]<a[i]) { int temp=a[i]; a[i]=a[j]; a[j]=temp; } } } } // 二分法查找 public static int find(int arr[],int key,int start,int end){ int local=0; while(start<=end) { int middle=(start+end)/2; if(key<arr[middle]) { end=middle-1; find(arr,key,start,end); } else if(key>arr[middle]){ start=middle+1; find(arr,key,start,end); } else if(key==arr[middle]) { local=middle; break; }else { local=-1; break; } } return local; } }
转载请注明原文地址: https://www.6miu.com/read-2630952.html

最新回复(0)