zoukankan      html  css  js  c++  java
  • bubbleSort和insertSort学习

    
    /**
    	 * 冒泡排序和插入排序,总体思路都是移动算法,外层循环没大差别,内层循环,插入排序是从当前临时比对元素开始,往前面进行排序
    	 * 冒泡排序是从数组最后一个元素开始到当前临时元素之间进行移动,感觉上插入排序效率应该更一点,插入一个有序一个。
    	 *
    	 * 数组的核心是移动过程,冒泡排序,遍历每个元素,从每个元素下标到最后的元素下标,依次比较大小,移动,最后越来越有顺序了
    	 * @param arr
    	 */
    	public static void sortBubble(long[] arr) {
    		long tmp = 0;
    		for(int i = 0; i < arr.length - 1; i++) {
    			for(int j = arr.length - 1; j > i; j--) {
    				if(arr[j] < arr[j - 1]) {
    					//进行交换
    					tmp = arr[j];
    					arr[j] = arr[j - 1];
    					arr[j - 1] = tmp;
    				}
    			}
    		}
    	}
    
    	/**
    	 * 数组核心是移动策略,从当前位置开始往后移动,找出来合适的插入位置就是插入排序的精华
    	 * @param arr
    	 */
    	public static void sortInsert(long[] arr){
    		long tmp =0;
    		for (int i = 1; i < arr.length; i++) {
    			tmp = arr[i];
    			int j = i;
    			while (j > 0 && tmp > arr[j]){
    				arr[j] = arr[j-1];
    				j--;
    			}
    			arr[j] = tmp;
    		}
    	}
    
    
    
  • 相关阅读:
    Comparator
    Compare接口
    Predicate接口和Consumer接口
    Lambda表达式遍历集合
    Lambda表达式入门
    RansomNote
    FirstUniqueCharacterInString
    String All Methods
    形参个数可变的方法(...)
    springBoot excel导出 下载 超简单
  • 原文地址:https://www.cnblogs.com/hbym/p/15693268.html
Copyright © 2011-2022 走看看