选择排序,从左到右依次找出最小的数值,从所有记录中选出最小的一个数据元素与第一个位置的记录交换;然后在剩下的记录当中再找最小的与第二个位置的记录交换,循环到只剩下最后一个数据元素为止
public static void selectSort(int[] numbers){
for(int i=0;i<numbers.length;i++)
{
for(int j=i+1;j<numbers.length;j++)
{
int left=numbers[i];
int right=numbers[j];
if(left>right)
{
int temp=left;
numbers[i]=right;
numbers[j]=temp;
}
}
}
}
以下这种性能高点
public static void selectSort(int[] numbers){
for(int i=0;i<numbers.length;i++)
{
int minIndex=i;
for(int j=i+1;j<numbers.length;j++)
{
int left=numbers[minIndex];
int right=numbers[j];
if(left>right)
{
minIndex=j;
}
}
if(minIndex!=i)
{
int temp=numbers[i];
numbers[i]=numbers[minIndex];
numbers[minIndex]=temp;
}
for(int n:numbers)
{
System.out.print(n+",");
}
System.out.println("");
}
}
网友评论