java中排序算法的实现(二)--威尼斯人娱乐场官网
最新博客 | LUCENE | JAVA | HADOOP | 英雄会 | 设计模式 | 随笔 | 博客源码 |
分类:java 发表时间:2013-12-31 11:05:00 作者:威尼斯人在线金钻官网
排序算法java直接选择排序直接插入排序算法

转载请注明出处:http://blog.csdn.net/威尼斯人在线金钻官网/article/details/17711107

        接着昨天的排序算法。今天更新直接插入排序和直接选择排序。前面的一些头就不写了,直接就写相应的方法。

	/**
	 * @param list
	 * @param c
	 * @Date: 2013-12-31  
	 * @Author: lulei  
	 * @Description: 直接插入排序
	 */
	public static <T> void straightInsertSort(List<T> list, Comparator<? super T> c) {
		if (list == null){
			return;
		}
		for (int i = 1; i < list.size(); i++) {
			//标记未排序的第一个元素
			T temp = list.get(i);
			int j;
			//将为排序的元素和已排序的序列进行比较,并移动元素位置
			for (j = i -1; (j >= 0) && (c.compare(list.get(j), temp) > 0); j--) {
				list.set(j + 1, list.get(j));
			}
			//如果标记元素不是已排序中最大的,将标记元素插入到有序序列中
			if (j != (i -1)) {
				list.set(j + 1, temp);
			}
		}
	}
	
	/**
	 * @param list
	 * @param c
	 * @Date: 2013-12-31  
	 * @Author: lulei  
	 * @Description: 直接选择排序
	 */
	public static <T> void straightSelectSort(List<T> list, Comparator<? super T> c) {
		if (list == null){
			return;
		}
		for (int i = 0; i < list.size(); i++){
			//标记下一个可能最小的元素
			int k = i;
			for (int j = i + 1; j < list.size(); j++) {
				//寻找剩下元素中最小元素的下标
				if (c.compare(list.get(k), list.get(j)) > 0) {
					k = j;
				}
			}
			//如果找到最小元素,进行交换
			if (k != i) {
				T temp = list.get(k);
				list.set(k, list.get(i));
				list.set(i, temp);
			}
		}
	}

   如要运行上述方法,直接将方法复制到  http://blog.csdn.net/威尼斯人在线金钻官网/article/details/17681605 这篇文章中的类中即可。

博客检索:
鼠标放上来试试:
如果你觉得网站内容对你有帮助,请点击下页面广告打赏下作者!
最新评论:
友情链接

 ©2015-2016 威尼斯人娱乐场官网的工作空间 -京ICP备15007871号