直接插入排序(java实现)
来源:互联网 发布:伦敦大学学院专业 知乎 编辑:程序博客网 时间:2024/06/05 05:32
定义一个数据包装类:
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 InsertSortDemo {public static void insertSort(DataWrap data[]){System.out.println("开始排序:\n");int arrayLength =data.length;for(int i=1;i<arrayLength;i++){//当整体后移时,保证data[i]的值不会丢失DataWrap tmp=data[i];//i索引处的值已经比前面的所有值都大,表明已经有序,无须插入//(i-1)索引处之前的数据已经有序,i-1索引处元素的值就是最大值if(data[i].compareTo(data[i-1])<0){int j=i-1;//整体后移一位for(;j>=0 && data[j].compareTo(tmp)>0;j--){data[j+1]=data[j];}//最后将tmp的值插入到合适的位置data[j+1]=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));insertSort(data);System.out.println("排序之后:\n"+Arrays.toString(data));}}
运行结果:
0 0
- 直接插入排序(java实现)
- 直接插入排序(java实现)
- 直接插入排序(JAVA实现)
- 插入排序--直接插入排序[Java实现]
- 插入排序----直接插入排序----java实现
- 直接插入排序java实现
- Java实现直接插入排序
- java实现直接插入排序
- 直接插入排序---java实现
- java实现直接插入排序
- 直接插入排序 :Java实现
- 直接插入排序----java实现
- java实现直接插入排序
- java 实现直接插入排序
- 直接插入排序 java实现
- Java实现直接插入排序
- 直接插入排序 java实现
- 直接插入排序-java实现
- 打开PS6报错
- Start.学习记录的开始
- 菲波那契数列
- 2Boost之UPD,Client and Server
- hadoop新框架Yarn详解
- 直接插入排序(java实现)
- Java中ArrayList的遍历方式
- windows 下 vs2008 编译 OpenCV 库
- jQuery $.post $.ajax用法
- 3虚函数表分析
- 四种方案解决ScrollView嵌套ListView问题
- 删除ArrayList中重复元素
- Union Find
- 4常量表达式计算器