zoukankan      html  css  js  c++  java
  • 快速排序和几种简单排序

    冒泡排序

    插入排序

    冒泡排序

    public void bubbleSort(int[] a) {
    	for(int i=0; i<a.length-1; i++)
    		//外层循环相当于要冒多少个泡泡
    		for(int j=0; j<a.length-1-i; j++){
    			//内层循环就是比较次数
    			if(a[j] < a[j+1]){
    				int temp = a[j];
    				a[j] = a[j+1];
    				a[j+1] = temp;
    		}
    	}
    }
    

    选择排序

    public void selectSort(int[] a) {
    	for (int i=0; i<a.length-1; i++) {
    		int k = i;
    		for (int j=i+1; j<a.length; j++) {
    			if (a[j]<a[k]) {
    				k=j;
    			}
    		}
    		if (k != i) {
    			int temp = a[i];
    			a[i] = a[k];
    			a[k] = temp;
    		}
    	}
    }
    

    快速排序

    /*
    *	while(arr[i++])的i是先用再加
    *  	while(arr[++i])的i是先加再用
    */
    public static <T> void Swap(T[] arr,int i,int j){
    	T temp = arr[i];
    	arr[i] = arr[j];
    	arr[j] = temp;
    }
    
    public static <T extends Comparable<? super T>> 
    				void quickSort(T[] arr,int begin,int end){
    	
    	if(begin < end){
    		T pivot = arr[begin];
    	int i = begin,j = end;
    	while(true){
    		while(i<end-1 && arr[++i].compareTo(pivot)<0){}
    		while(j>begin && arr[--j].compareTo(pivot)>0){}
    		if(i < j){
    			Swap(arr, i, j);
    		}else{
    			break;
    		}
    	}
    	Swap(arr, j, begin);
    	quickSort(arr, begin, j);
    	quickSort(arr, j+1, end);
    	}
    }
    

    backToTop☝️

    插入排序

    public static void InsertSort(int[] arr){
    	for (int i = 1; i < arr.length; i++ ){
    		int temp = arr[i];
    		int j = i;
    		while(j > 0 && temp < arr[j-1]) {
    				arr[j] = arr[j-1];
    				j--;
    		}
    		arr[j] = temp;
    	} 
    }
    
  • 相关阅读:
    记忆的永恒
    放弃我是你的错
    献给我逝去的长辈们清明
    思维的局限,穷人为什么会穷?
    借我一生
    陪你到老
    风雨路途
    人生的十二大财富
    怀才不遇
    javascript变量
  • 原文地址:https://www.cnblogs.com/bihanghang/p/9956965.html
Copyright © 2011-2022 走看看