public class SelectionSort2_2_2
{
/**
* 选择法排序,使已排序子数组的最后一个元素与未排序序列最小值互换位置
* @date 2015-6-13
* @author lemma
*/
// doSort方法
public void doSort(int[] Data)
{
//找出已排序子数组最后的元素
for (int index = 0; index < Data.length - 1; index++)
{
int temp = Data[index];
int tempIndex = index;
//找出未排序序列中小于已排序子数组的元素的最小值
for (int selectedIndex = index + 1; selectedIndex < Data.length; selectedIndex++)
{
if (Data[selectedIndex] < temp)
{
temp = Data[selectedIndex];
tempIndex = selectedIndex;
}
}
//如果最小值存在,与已排序子数组的最后一位交换位置
if (temp != Data[index])
{
Data[tempIndex] = Data[index];
Data[index] = temp;
}
}
for (int data : Data)
{
System.out.print(data + " ");
}
}
public static void main(String args[])
{
int Data[] = { 15, 65, 23, 48, 21, 4, 68 };
new SelectionSort2_2_2().doSort(Data);
}
}