标签:选择排序 二次 int span data 有序 排序算法 this 顺序
直接选择排序是最简单直观的排序算法,属于选择排序。
直接算法的排序思路:
这样经过n-1次比较,这组数据就会变得有序。下面是直接选择的排序算法实现。
/** * Created by tom on 2017-05-07. */
//创建对象数组来作为被排序的对象,在每个对象中加入标识,标识相同的数字
class DataWrap implements Comparable<DataWrap>{ int data; String flag; public DataWrap(int data ,String flag){ this.data=data; this.flag=flag; } @Override public String toString() { return data+flag; } //如果当前data大于dw,返回1;小于和等于返回数值不是1 @Override public int compareTo(DataWrap dw) { return this.data>dw.data?1:(this.data==dw.data?0:-1); } } public class SelectSort { public static void SelectSort(DataWrap[] data){ System.out.println("开始排序"); int arrayLength=data.length; for (int i = 0; i < arrayLength-1; i++) { int minIndex=i; for (int j = i+1; j <arrayLength ; j++) { if(data[i].compareTo(data[j])>0){ //如果data[i]>data[j],则交换顺序 DataWrap temp=data[i]; data[i]=data[j]; data[j]=temp; } } } } public static void main(String[] args){ DataWrap[] dataWrap={ new DataWrap(21,""), new DataWrap(25,""), new DataWrap(31,""), new DataWrap(21,"*"), new DataWrap(1,""), new DataWrap(71,""), new DataWrap(2,""), }; System.out.println("排序之前"); System.out.println(java.util.Arrays.toString(dataWrap)); SelectSort(dataWrap); System.out.println("排序之后"); System.out.println(java.util.Arrays.toString(dataWrap)); } }
程序输出结果:
排序之前
[21, 25, 31, 21*, 1, 71, 2]
开始排序
排序之后
[1, 2, 21, 21*, 25, 31, 71]
标签:选择排序 二次 int span data 有序 排序算法 this 顺序
原文地址:http://www.cnblogs.com/hello-daocaoren/p/6826900.html