package sort;
/**
* SelectSort
* 选择排序算法:
* 基本思想:(假设数据放在一个数组a中,且数组的长度是N)
* 1:从a[0]-a[N-1]中选出最小的数据,然后与a[0]交换位置
* 2:从a[1]-a[N-1]中选出最小的数据,然后与a[1]交换位置(第1步结束后a[0]就是N个数的最小值)
* 3:从a[2]-a[N-1]中选出最小的数据,然后与a[2]交换位置(第2步结束后a[1]就是N-1个数的最小值)
* 以此类推,N-1次排序后,待排数据就已经按照从小到大的顺序排列了。
*
*/
public class SelectSort
{
private int countStep = 0;
public void sort(int[] initData)
{
int smallest = 0;
int len = initData.length;
for (int i=0; i<len-1; i++)
{
smallest = i;
for (int j=i; j<len; j++)
{
countStep ++;
if (initData[j] < initData[i])
{
smallest = j;
}
}
if (smallest != i)
{
int temp = initData[i];
initData[i] = initData[smallest];
initData[smallest] = temp;
}
}
}
public int showStep()
{
return countStep;
}
}
选择排序算法
最新推荐文章于 2024-01-16 05:00:00 发布