面试中用到的冒泡排序和快速排序;

直接上代码 !编译运行正确输出 package com.humi.db;

	public class Sort {
		
		/***
		 * 冒泡排序算法,
		 */
		static int[] intArr ={8,2,4,5,1,9,0,3,7,6};//测试数组
		public static void swap(int index,int nextIndex,int[] targetArray){
	//		int temp=targetArray[index];
	//		targetArray[index]=targetArray[nextIndex];
	//		targetArray[nextIndex]=temp;
			if(targetArray[index]==targetArray[nextIndex]){
				return;
			}
			targetArray[index]=targetArray[index]+targetArray[nextIndex];
			targetArray[nextIndex]=targetArray[index]-targetArray[nextIndex];
			targetArray[index]=targetArray[index]-targetArray[nextIndex];
		}
		public static void bubbleSort(int[] intArr){
			
			int temp;
			for (int i = 0; i <=intArr.length; i++) {//共N-1变
				for (int j = 0; j <intArr.length-1-i; j++) {//共 N-i-1的累加次
					if(intArr[j]>intArr[j+1]){//升序
	//				if(intArr[j]<intArr[j+1]){//降序
						temp=intArr[j];
						intArr[j]=intArr[j+1];
						intArr[j+1]=temp;
					}
				}
			}
			for (int i = 0; i < intArr.length; i++) {
				System.out.print(intArr[i]+" ");
			}
		}
		/**
		 * 快速排序算法实现,
		 * @param args
		 */
		 public static void fastSort(int[] data, int start, int end) {  
		        if (start >= end)  
		            return;  
		        //以起始索引为分界点  
		        int pivot = data[start];  
		        int i = start + 1;  
		        int j = end;  
		        while (true) {  
		            while (i <= end && data[i] < pivot) {  
		                i++;  
		            }  
		            while (j > start && data[j] > pivot) {  
		                j--;  
		            }  
		            if (i < j) {  
		                swap( i, j,data);  
		            } else {  
		                break;  
		            }  
		        }  
		        //交换 j和分界点的值  
		        swap( start, j,data);  
		        
		        //递归左子序列  
		        fastSort(data, start, j - 1);  
		        //递归右子序列  
		        fastSort(data, j + 1, end);  
		        
		       
		    }  
		
		/***
		 * Java.util.Arrays 下的sort 归并排序的实现
		 * @param args
		 */
		public static void fastSort(int[] intArr){
			
		}
		public static void main(String[] args) {
	//		System.out.println("冒泡排序!升序ASC/降序DESC");
	//		bubbleSort(intArr);
			System.out.println();
			System.out.println("快速排序!ASC");
			fastSort(intArr,0,intArr.length-1);
			 for (int j2 = 0; j2 < intArr.length; j2++) {
		        	System.out.print(intArr[j2]+" ");  
				}
		}
	}
专注于JavaWeb
原文地址:https://www.cnblogs.com/humi/p/7071917.html