选择排序
大致思想就是:一组数据,我先选定第一个数是最小的,然后依次在除了第一个数以外的数据中遍历,找到比当前认定的最小值还要小的数,然后记录他的下标,待一次循环结束后,交换位置。
此时这组数据的第一个元素就是名副其实的最小的,然后换下一个,假定第二个元素是最小的,在重复上述操作,直到全部有序。
package sort;
/*
* 选择排序
*/
public class selectSort
{
private int [] array = { 9 , 3 , 4 , 2 , 6 , 8 , 5 } ;
private int out ;//用来记录每次从哪开始(起点)
private int in ;//用来来回遍历
private int min ;//存放一次循环中找到的最小数字的下标
private int temp ;//存放待交换的值
public void sort ()
{
for ( out = 0 ; out < array.length ; ++ out )
{
min = out ;//每次循环的开始,先假定起点就是最小的数字,用它来和遍历中的数据作比较
temp = array [min] ;
//循环查找最小值,找到最小的就将其下标记住待循环结束,在交换
for ( in = out + 1; in < array.length ; ++ in )
{
if ( array [in] < array [min] )
min = in ;
}
//交换,将循环中找到最小值放到起点,起点里存放的数放到最小值位置
array [out] = array [min] ;
array [min] = temp ;
}
}
public void display ()
{
for ( int i = 0 ; i < array.length ; ++ i )
{
System.out.print ( array [i] + " " );
}
System.out.println ();
}
}