选择排序算法的一般策略:搜索整个值列,以找到最小值。将该值与值列中第一个位置上的值进行交换。搜索剩下的值列(第一个除外),以找到其中的最小值,然后将其与值列中第二个位置上的值进行交换。对值列中的每个位置重复该过程。在算法结束时,就完成了对值列的排序。
下面是选择排序算法--Java程序
public
class Selection {
public static void selectionSort(Comparable []data){
int intLength = data.length;
for( int i=0;i<intLength-1;i++){
int minIndex = i;
//Find smallest name
for( int j=i+1;j<intLength;j++){
Comparable a = data[j];
Comparable b = data[minIndex];
if(a.compareTo(b)<0){
minIndex = j;
}
}
//Swap data if necessary
if(minIndex!=i){
Comparable temp = data[i];
data[i] = data[minIndex];
data[minIndex] = temp;
}
}
}
public static void main(String []args){
Comparable []c={4,9,23,1,45,27,5,2};
selectionSort(c);
for( int i=0;i<c.length;i++){
System.out.println( "选择排序:"+c[i]);
}
}
}
public static void selectionSort(Comparable []data){
int intLength = data.length;
for( int i=0;i<intLength-1;i++){
int minIndex = i;
//Find smallest name
for( int j=i+1;j<intLength;j++){
Comparable a = data[j];
Comparable b = data[minIndex];
if(a.compareTo(b)<0){
minIndex = j;
}
}
//Swap data if necessary
if(minIndex!=i){
Comparable temp = data[i];
data[i] = data[minIndex];
data[minIndex] = temp;
}
}
}
public static void main(String []args){
Comparable []c={4,9,23,1,45,27,5,2};
selectionSort(c);
for( int i=0;i<c.length;i++){
System.out.println( "选择排序:"+c[i]);
}
}
}
转载于:https://blog.51cto.com/tscjsj/84582