zoukankan      html  css  js  c++  java
  • 简单的三种排序法

    /**
    	 * 插入排序法 
    	 *从第一个元素开始,该元素可以认为已经被排序
    	 *取出下一个元素,在已经排序的元素序列中从后向前扫描 
    	 * 如果该元素(已排序)大于新元素,将该元素移到下一位置,重复步骤3,直到找到已排序的元素小于或者等于新元素的位置,将新元素插入到该位置中;
    	 * 重复步骤2。 
    	 */
    
    	public static void insertSort(int[] numbers) {
    		int size = numbers.length, temp, j;
    		for (int i = 1; i < size; i++) { // i从1开始是默认第一个为已经排序号的
    			temp = numbers[i];
    			for (j = i; j > 0 && temp < numbers[j - 1]; j--) {
    				numbers[j] = numbers[j - 1];
    			}
    			numbers[j] = temp;
    		}
    	}
    

      

    /** 
    	 *冒泡排序法: 
    	 * 比较相邻的元素。如果第一个比第二个大,就交换他们两个。
    	 *对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
    	 * 针对所有的元素重复以上的步骤,除了最后一个。
    	 * 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
    	 *   
    	 */ 
    	public static void bubbleSort(int[] numbers) {
    		int temp; // 记录临时中间值
    		int size = numbers.length; // 数组大小
    		for (int i = 0; i < size - 1; i++) {
    			for (int j = i + 1; j < size; j++) {
    				if (numbers[i] < numbers[j]) { // 交换两数的位置
    					temp = numbers[i];
    					numbers[i] = numbers[j];
    					numbers[j] = temp;
    				}
    			}
    		}
    	}
    	
    

      

    /** 
    	 * 选择排序法 : 
    	 * 在未排序序列中找到最小元素,存放到排序序列的起始位置。
    	 *再从剩余未排序元素中继续寻找最小元素,然后放到排序序列末尾。以此类推,直到所有元素均排序完毕。
    	 */  
    	public static void selectSort(int[] numbers) {   
    	    int size = numbers.length, temp;   
    	    for (int i = 0; i < size; i++) {   
    	        int k = i;   
    	        for (int j = size - 1; j >i; j--)  {   
    	            if (numbers[j] < numbers[k])  k = j;   
    	        }   
    	        temp = numbers[i];   
    	        numbers[i] = numbers[k];   
    	        numbers[k] = temp;   
    	    }   
    	}
    

      

  • 相关阅读:
    苹果推送通知服务(APNs)编程
    Mac svn命令 linux同样适用
    IOS多线程(NSThread,NSOperation,Grand Central Dispatch)
    iOS7新特性之二维码生成于读取
    Socket即时通讯小实例
    iOS内置加速计(UIAccelerometer/CoreMotion)
    iOS设计模式----委托模式
    NSXMLParser详解
    Core Foundation 框架
    UIView和CALayer的区别
  • 原文地址:https://www.cnblogs.com/gaolt/p/10037021.html
Copyright © 2011-2022 走看看