排序:简单排序算法实现:冒泡,选择,插入
来源:互联网 发布:淘宝自动充值没到账 编辑:程序博客网 时间:2024/05/17 06:35
package com.zf.algorithm.sort;import java.util.ArrayList;import java.util.Arrays;import java.util.List;public final class Sort{/** * 排序方向,升序或者降序 * * @author zf * */public enum ORDER{ascend(1), descend(-1);private ORDER(int value){this.order = value;}private int order;public int getOrder(){return order;}}/** * 简答的冒泡排序。 * * @param list * 需要排序的数组 * @param order * 顺序 */@SuppressWarnings("unchecked")public static <T> void simpleBubbleSort(List<Comparable<T>> list, ORDER order){// Check parameterif (list == null || list.size() == 0)return;for (int i = 0; i < list.size() - 1; i++){for (int j = i + 1; j < list.size(); j++){if (list.get(i).compareTo((T) list.get(j)) * order.getOrder() > 0){Comparable<T> temp = list.get(i);list.set(i, list.get(j));list.set(j, temp);}}}}/** * 改进的冒泡排序。 * * @param list * 需要排序的数组 * @param order * 顺序 */@SuppressWarnings("unchecked")public static <T> void impovedBubbleSort(List<Comparable<T>> list, ORDER order){// Check parameterif (list == null || list.size() == 0)return;for (int i = 0; i < list.size(); i++){for (int j = list.size() - 1; j > i; j--){if (list.get(j - 1).compareTo((T) list.get(j)) * order.getOrder() > 0){Comparable<T> temp = list.get(j);list.set(j, list.get(j - 1));list.set(j - 1, temp);}}}}/** * 简答的选择排序。 * * @param list * 需要排序的数组。 * @param order * 顺序。 */@SuppressWarnings("unchecked")public static <T> void simpleSelectSort(List<Comparable<T>> list, ORDER order){// Check parameterif (list == null || list.size() == 0)return;for (int i = 0; i < list.size() - 1; i++){int loc = i;for (int j = i + 1; j < list.size(); j++){if (list.get(loc).compareTo((T) list.get(j)) * order.getOrder() > 0){loc = j;}}Comparable<T> temp = list.get(i);list.set(i, list.get(loc));list.set(loc, temp);}}/** * 插入排序。 * * @param list * 需要排序的数组。 * @param order * 顺序。 */@SuppressWarnings("unchecked")public static <T> void insertSort(List<Comparable<T>> list, ORDER order){// Check parameterif (list == null || list.size() == 0)return;Object[] arrays = list.toArray();for (int i = 1; i < arrays.length; i++){Comparable<T> iEle = (Comparable<T>) arrays[i];if (iEle.compareTo((T) arrays[i - 1]) * order.getOrder() < 0){int j = i - 1;for (; j >= 0; j--){if (iEle.compareTo((T) arrays[j]) * order.getOrder() < 0){arrays[j + 1] = arrays[j];} else{break;}}arrays[j + 1] = iEle;}}list.clear();for (Object object : arrays)list.add((Comparable<T>) object);}public static void main(String[] args){Integer[] integers ={ 4, 3, 7, 1, 6, 2 };List<Comparable<Integer>> list = new ArrayList<Comparable<Integer>>();list.addAll(Arrays.asList(integers));System.out.println("INPUT : " + list);// Sort.simpleBubbleSort(list, ORDER.descend);// Sort.impovedBubbleSort(list, ORDER.descend);// Sort.simpleSelectSort(list, ORDER.descend);Sort.insertSort(list, ORDER.ascend);System.out.println("OUTPUT : " + list);}}
0 0
- 排序:简单排序算法实现:冒泡,选择,插入
- 基本算法简单实现-二分法查找、合并排序、冒泡排序、插入排序、选择排序、快速排序
- 简单排序算法:冒泡排序,选择排序,插入排序
- 简单排序算法(冒泡排序、选择排序、插入排序)
- java简单实现冒泡、快速、选择、插入排序算法
- 选择排序&插入排序&冒泡排序&快速排序算法实现
- #.java实现排序算法:插入排序、选择排序、冒泡排序
- 简单排序算法:冒泡、选择、插入
- 简单排序算法整理(冒泡,选择,插入)
- java实现简单的排序算法:冒泡排序、选择排序、插入排序
- 简单排序算法:冒泡排序,选择排序和插入排序的c++实现
- (九)数据结构之简单排序算法实现:冒泡排序、插入排序和选择排序
- Java简单算法之 冒泡排序 选择排序 插入排序
- java实现冒泡、选择、插入排序算法
- 冒泡-选择-插入排序算法的实现
- 冒泡,选择,插入排序算法C++实现
- 冒泡排序、选择排序、插入排序 算法实现(C++)
- 冒泡排序、选择排序、插入排序 算法实现(C++)
- 图像控件支持手势
- python之urllib
- 解决Eclipse里找不到courier new字体选项
- wireshark分析m3u8
- pre小技巧:强制换行与横向滚动条[转]
- 排序:简单排序算法实现:冒泡,选择,插入
- 求二叉树中节点的最大距离
- Hibernate4.1不能读取xml解决方法
- Pearson,Kendall和Spearman三种相关分析方法的异同
- linux redhat静态ip的详细配置
- 27个iOS开发中的小技巧
- 有关于Fragment是否应该有empty constructor的问题
- windows/linux避免多线程应用程序在多核间切换,影响程序效率
- Hibernate 所有缓存机制详解