排序练习

插入排序

	public static int[] insert_sort(int arr[]){
		
		int i = 0,temp;               //插入排序 
		for(int j = 1;j<arr.length ;j++){  //遍历外层循环,从第2个数开始
			temp=arr[j];                       
			i=j-1;
			while(i>0 && arr[i]>temp){
				arr[i+1]=arr[i];
				i--;
			}
			arr[i+1]=temp;
		}
		return arr;
		
	}

冒泡排序

	   public static void bubbleSort(int arr[]){
		 
		   int temp = 0 ;
		   for(int i = 0 ;i<arr.length-1;i++){
			 for(int j = 0 ; j<arr.length-1-i;j++){
				 if(arr[j+1]<arr[j]){
					 temp=arr[j+1];
					 arr[j+1] =arr[j]; 
					 arr[j]=temp;
				 }
			 }
		 }
		   
	   }

 插入排序

 public static void swap(int a[], int i, int j) {

    	if(i == j) return;

        int tmp = a[i];

        a[i] = a[j];

        a[j] = tmp;

    }
	public static int partition(int arr[],int start,int end){
		int i=start-1;
		int key = arr[end];
		for(int j = 0 ; j<end;j++){
			if(arr[j]<key){
				
				i++;
				swap(arr, i, j);
		
			}
		}
		swap(arr, i+1, end);

		return i+1;
	}
	

	   public static void quickSort(int array[], int start, int end) {

	        if (start< end) {

	            int p = partition(array, start, end);

	            quickSort(array, start, p - 1);

	            quickSort(array, p + 1, end);
	 

	        }


	    }

 

 


 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。