zoukankan      html  css  js  c++  java
  • 面试中用到的冒泡排序和快速排序;

    直接上代码 !编译运行正确输出 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
  • 相关阅读:
    vue路由的两种模式,hash与history
    javascript的继承小结
    attr和prop区别
    ie6、7下 text-indent 问题
    推荐链接
    iphone中 input圆角bug
    gif图片加载问题
    IE7中绝对定位元素之间的遮盖问题
    多行文本溢出显示省略号(...)的方法
    ie6兼容之绝对定位元素内容为空时高度问题
  • 原文地址:https://www.cnblogs.com/humi/p/7071917.html
Copyright © 2011-2022 走看看