zoukankan      html  css  js  c++  java
  • 冒泡排序、选择排序

    
    
    public class MySort {
    	
    	
    	
    	/**
    	 * 插入排序(小到大)
    	 * @param arr
    	 * @return
    	 */
    	public int[] insertSort(int[] arr) {
    
    		
    		for (int i = 1; i < arr.length; i++) {
    			
    			int copyNum = arr[ i ];	
    			int targetIndex = i;	
    
    			/*
    			 * copyNumIndex>0看的是现在这个copyNumIndex是否已经越界了
    			 * copyNum<arr[copyNumIndex-1])看复制出来的这个数是否小于本身前面的那个数
    			 * 都满足,则证明没有还没找到插入的位置
    			 */
    			while (targetIndex>0 && copyNum<arr[ targetIndex - 1 ] ) {
    				
    				arr[ targetIndex ] = arr[ targetIndex - 1 ]; //让前面的那个数替换掉copyNum的本体
    				targetIndex--;
    			}
    
    			arr[ targetIndex ] = copyNum;
    		}
    
    		return arr;
    
    	}
    	
    
    	
    	
    	/**
    	 * 选择排序
    	 * @param arr
    	 * @return
    	 */
    	public int[] selectSort(int[] arr) {
    		
    		for(int i=0; i<arr.length-1; i++) {
    			
    			//假设最小值
    			int min = arr[i];
    			int minIndex = i;
    			
    			for(int j=i+1; j<arr.length; j++) {
    				
    				if(min > arr[j]) {
    					min = arr[j];
    					minIndex = j;
    				}
    			}
    			
    			//如果循环过后没有变则跳过(减少交换操作)
    			if(min == arr[i])
    				continue;
    			
    			
    			swap(arr, i, minIndex);
    			
    		}
    		
    		
    		return arr;
    		
    	}
    
    	
    	/**
    	 * 冒泡排序
    	 * @param arr
    	 * @return
    	 */
    	public int[] bubbleSort(int[] arr) {
    
    		//控制次数
    		for(int i=0; i<arr.length-1; i++) {
    			
    			for(int j=0; j<arr.length-(i+1); j++) {
    				
    				if(arr[j] > arr[j+1]) {
    					swap(arr, j, j+1);
    				}
    			}
    		}
    		
    		return arr;
    	}
    	
    	/**
    	 * 数值交换
    	 * @param arr
    	 * @param a	数组下标
    	 * @param b	数组下标
    	 */
    	private void swap(int[] arr, int a, int b) {
    		
    		int temp = arr[b];
    		arr[b] = arr[a];
    		arr[a] = temp;
    		
    	}
    	
    	
    	/**
    	 * 打印数据
    	 * @param arr
    	 */
    	public void printArray(int[] arr) {
    		for (int i : arr) {
    			System.out.print(i + "	");	
    		}
    	}
    	
    }
    
    
    
    
    
  • 相关阅读:
    webstorm配置github 以及本地代码上传github。
    日期控件------moment.js
    图片查看器
    日期
    配置一个node服务器
    git代码管理
    vue
    javascript (字符串, 数组, 对象 , 日期 和 操作元素节点 动画 定时器)
    html css
    JS常用方法
  • 原文地址:https://www.cnblogs.com/tandi19960505/p/8645262.html
Copyright © 2011-2022 走看看