数据结构排序之使用JAVA范型完成2路排序
2014-03-27 20:34
337 查看
package ch10; /** * 2-路插入排序 * @author songjie * */ public class TwoWayInsertSort { /** * * @param <T> * @param t:原始数组 * @param s:待返回的排好序的数组 * @return * @throws IllegalArgumentException */ public static <T extends Comparable> boolean twoWayInsertSort(T[] t, T[] s) throws IllegalArgumentException{ if(t==null || t.length<=1) return true;//安全性检查 if(s==null || s.length!=t.length) throw new IllegalArgumentException("参数传递不正确-两个数组的长度不一样!"); s[0] = t[0]; int first = 0; int end = 0; for(int i=1 ; i<=t.length-1 ; i++){ if(t[i].compareTo(s[0]) > 0){//插到后面 int j; for(j=end; j>0 && s[j].compareTo(t[i])>0 ;j--){ s[j+1] = s[j]; } s[j+1] = t[i]; end++; }else{//插到前面 if(first == 0){ first = s.length-1; s[first] = t[i]; continue; } int k; for(k = first; k<=s.length-1 && s[k].compareTo(t[i])<=0 ; k++){ s[k-1] = s[k]; } s[k-1] = t[i]; first--; } } return true; } public static void main(String[] args) { Integer[] arr = new Integer[]{7,4,3,1,6,9,8}; Integer[] arrSort = new Integer[arr.length]; TwoWayInsertSort.twoWayInsertSort(arr, arrSort); for(int i : arrSort){ System.out.println(i); } } }
相关文章推荐
- java交换排序ExchangeSort的代码和使用(包含清晰完成过程)
- 使用Java完成byte数组与十六进制字符串相互转换
- java中排序使用方法
- java使用Comparator与Comparable接口对对象排序
- 【数据结构】-直接插入排序、希尔排序Java实现
- 数据结构 JAVA描述(十三) 排序总结
- 数据结构(java语言描述)顺序栈的使用(两个大数相加)
- java 使用LinkedList模拟一个堆栈或者队列数据结构
- 算法和数据结构-排序-插入排序(Java)
- 题目:某公司有几万名员工,请完成一个时间复杂度为O(n)的算法对该公司员工的年龄作排序,可使用O(1)的辅助空间。
- 使用 Smooks Eclipse 插件轻松完成 XML 到 Java 的数据转换
- Java中使用Socket完成简单的远程计算(含粗糙界面和正则表达式判断数字类型)
- java数据结构----经典排序集锦
- 数据结构JAVA-----对像排序
- 数据结构--Java实现几种常见排序
- java使用163邮箱完成发送邮件完成注册
- Java数据结构之队列的简单定义与使用方法
- 数据结构在java中的使用
- 每天一个数据结构——三种简单排序算法及Java实现
- [改善Java代码]使用Comparator进行排序