zoukankan      html  css  js  c++  java
  • 二分法排序

    由于上篇---八大排序法,进而联系起二分法排序,所以在这里补充一个比较经典的排序法---二分法排序;

    逻辑相对简单,所以直接上代码

    package com.sinolife.mtrs.apply.controller;
    
    import java.util.Arrays;
    
    /** 
     * @author  delin Li 
     * @version createTime:2017-12-7下午04:10:37 
     * @Description  
     */
    public class TestSort {
    
        /**
         * @param args
         */
        public static void main(String[] args) {
            int[] ins = {1,3,53,5,7,81,2,5,71,9};
            binarySort(ins);//二分法排序
            print(ins);
        }
    
        public static void print(int[] data) {  
            for (int i = 0; i < data.length; i++) {  
                System.out.print(data[i] + "  ");  
            }   
        }  
        public static  void binarySort(int[] arr){// 定位
            for(int i = 1;i<arr.length;i++){
                int temp = arr[i];
                int low = 0;
                int top = i-1;
                int mid;
                while(low<=top){
                    mid = (top+low)/2;
                    if(arr[mid]>temp){
                        top = mid-1;
                    }else{
                        low = mid+1;
                    }
                }
                for(int j=i;j>low;j--){// 移动数组
                    arr[j]= arr[j-1];
                }
                arr[low] = temp;// 在找到的位置插入
            } 
        }
    }

    如有错误,希望朋友们能指出来。

  • 相关阅读:
    Node.js 函数
    Node.js模块系统
    在Apache服务器上安装SSL证书
    Node.js Stream(流)--文件操作
    HTML5自带验证美化
    HTML5约束验证API
    Node.js Buffer(缓冲区)
    Python 练习:简单的购物车(二)
    Python 练习:简单的购物车
    Python 列表操作
  • 原文地址:https://www.cnblogs.com/lidelin/p/8034302.html
Copyright © 2011-2022 走看看