折半插入排序(java实现)
来源:互联网 发布:淘宝代运营服务商 编辑:程序博客网 时间:2024/06/01 10:18
定义一个数据包装类:
package sorted;public class DataWrap implements Comparable<DataWrap>{int data;String flag;public DataWrap(int data,String flag){this.data=data;this.flag=flag;}public String toString(){return data+"_"+flag;}public int compareTo(DataWrap dw){return this.data>dw.data ? 1:(this.data==dw.data? 0 : -1);}}
折半插入排序算法如下:
package sorted;import java.util.Arrays;public class BinaryInsertSort {public static void binaryInsertSort(DataWrap[] data){System.out.println("开始排序:\n");int arrayLength=data.length;for(int i=1;i<arrayLength;i++){DataWrap tmp = data[i];int low =0;int high=i-1;while(low<=high){int mid=(low+high)/2;if(tmp.compareTo(data[mid])>0){low=mid+1;}else{high=mid-1;}}for(int j=i;j>low;j--){data[j]=data[j-1];}data[low]=tmp;System.out.println(Arrays.toString(data));}}public static void main(String args[]){DataWrap[] data={new DataWrap(9,""),new DataWrap(-16,""),new DataWrap(21,"*"),new DataWrap(23,""),new DataWrap(-30,""),new DataWrap(-49,""),new DataWrap(21,""),new DataWrap(30,"*"),new DataWrap(30,"")};System.out.println("排序之前:\n"+Arrays.toString(data));binaryInsertSort(data);System.out.println("排序之后:\n"+Arrays.toString(data));}}
运行结果:
0 0
- 折半插入排序(java实现)
- 折半插入排序java实现
- Java实现折半插入排序
- java实现折半插入排序(二分插入排序)
- 插入排序--折半插入排序[Java实现]
- java实现排序算法之插入排序(直接插入排序,折半插入排序,希尔排序)
- 插入排序之折半排序Java实现
- 排序算法--插入排序(直接插入排序、折半插入、shell排序)的java实现
- java实现折半插入排序算法
- Java 实现二分(折半)插入排序
- java实现折半插入排序算法
- 折半插入排序 Java
- 折半插入排序 Java
- Java 折半插入排序
- java折半插入排序
- 折半插入排序(数组实现)
- java实现排序算法之2-路插入排序,直接插入排序,折半插入排序
- 插入排序(折半插入)
- Union Find
- 4常量表达式计算器
- HDOJ 4430 Yukari's Birthday
- 【English】Android -> Training -> Adding the Action Bar -> Adding Action Buttons
- header("Content-type: image/png"); 显示图片出错
- 折半插入排序(java实现)
- Umeng Push On HTML
- iOS_31_cocos2d_CCAction
- hihocoder 状态压缩二
- Java 学习笔记--解决一个类实现多个接口的问题
- 桥接模式(Bridge)
- UITabBar
- 遍历驱动设备栈
- UITableView使用及TableViewCell的复用机制