标题:Java排序算法之直接选择【简单选择】排序
一、思想
每次从剩下的无序序列中,选取最小的放入,重复上述步骤
public int[] directChoose(int[] a) {
for(int i=0;i<a.length-1;i++) {
int min=a[i];
int index=i;
boolean flag=false;
for(int j=i;j<a.length;j++) {
if(min>a[j]) {
flag=true;
min=a[j];
index=j;
}
}
if(flag) {
int temp=a[index];
a[index]=a[i];
a[i]=temp;
}
}
完整代码如下:
/**
* 直接选择排序
* 每次从剩下的无序序列中,选取最小的放入,重复上述步骤
* @author dell
*
*/
public class DirectChooseSort {
public int[] directChoose(int[] a) {
for(int i=0;i<a.length-1;i++) {
int min=a[i];
int index=i;
boolean flag=false;
for(int j=i;j<a.length;j++) {
if(min>a[j]) {
flag=true;
min=a[j];
index=j;
}
}
if(flag) {
int temp=a[index];
a[index]=a[i];
a[i]=temp;
}
}
return a;
}
@Test
public void test() {
int[] a=new int[] {35,15,6,48,19,21,27};
// int[] a=new int[] {26,5,77,1,61,11,59,15};
// int[] a=new int[] {35,22,8,16,21,22,27};
// int[] a=new int[] {32,42,7,48,15,48,12,18};
// int[] a=new int[] {7,4,9,18,2,6,10};
// int[] a=new int[] {26,57,24,2,1,68,5,34,588,9,25,647};
a = this.directChoose(a);
for(int in:a) {
System.out.print(in+" ");
}
}
}