二分法排序

Posted 临飞

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了二分法排序相关的知识,希望对你有一定的参考价值。

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

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

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;// 在找到的位置插入
}
}
}

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

以上是关于二分法排序的主要内容,如果未能解决你的问题,请参考以下文章

算法二分法 ② ( 排序数组中查找目标值 | 二分法的经典写法 | 在排序数组中查找元素的最后一个位置 | 二分法的通用模板 )

二分法插入排序

二分法查找和快速排序

利用二分法实现插入排序算法(二分法使用递归来实现)

JAVA算法之二分法插入排序

冒泡排序,选择排序,二分法