数据结构之排序算法Java实现(1)—— 选择类排序之简单选择排序算法

选择性排序是基于“选择”的,简单选择排序是每一次为一个数选择出一个合适的位置放进去。Java代码如下:

升序排序:

/**
	 * 简单选择排序
	 * 升序排序
	 */
	@Override
	public <T extends Comparable<? super T>> void sortByAsc(T[] data) {
		if(data == null || data.length <= 1){
			return;
		}
		/**遍历数组,为每一个数选择适合他的位置*/
		for(int i = 0; i < data.length; i++){
			int index = i;
			/**遍历i之后的数组,找到合适的值*/
			for(int j = i + 1; j < data.length; j++){
				if(data[index].compareTo(data[j]) > 0){
					index = j;
				}
			}
			/**交换值*/
			T temp = data[index];
			data[index] = data[i];
			data[i] = temp;
		}
		
	}

  

  升序排序:

/**
	 * 简单选择排序
	 * 降序排序
	 */
	@Override
	public <T extends Comparable<? super T>> void sortByDesc(T[] data) {
		if(data == null || data.length <= 1){
			return;
		}
		/**遍历数组,为每一个数选择适合他的位置*/
		for(int i = 0; i < data.length; i++){
			int index = i;
			/**遍历i之后的数组,找到合适的值*/
			for(int j = i + 1; j < data.length; j++){
				if(data[index].compareTo(data[j]) < 0){
					index = j;
				}
			}
			/**交换值*/
			T temp = data[index];
			data[index] = data[i];
			data[i] = temp;
		}
		
	}

  

  

posted @ 2017-03-09 11:23  emma_zhang  阅读(328)  评论(0编辑  收藏  举报