一、算法思想:
从整个线性表中选择最小的那个元素,然后将这个最小的元素放到表的最前面或者最后面(根据排序的升降序)。然后对剩下的子表采用相同方法,直到表空。
二、实现步骤:
1、判断数组的有效性
2、初始化一个临时变量“temp”交换时存放交换值,初始化一个整型变量“k”作为指向数组最小值的下标
3、第一个子表,从中找到最小值,并将该最小值的下标值传给k
4、跳出内循环,将最小值a[k]与数组第一个元素互换
5、重复3、4步骤
从整个线性表中选择最小的那个元素,然后将这个最小的元素放到表的最前面或者最后面(根据排序的升降序)。然后对剩下的子表采用相同方法,直到表空。
二、实现步骤:
1、判断数组的有效性
2、初始化一个临时变量“temp”交换时存放交换值,初始化一个整型变量“k”作为指向数组最小值的下标
3、第一个子表,从中找到最小值,并将该最小值的下标值传给k
4、跳出内循环,将最小值a[k]与数组第一个元素互换
5、重复3、4步骤
三、详细函数代码如下:
void SelectSort(int a[],int length)
{
//step1-------------------------------
if (NULL == a || 0 == length)
{
cout<<"Invalid array!"<<endl;
return;
}
//step2-------------------------------
int temp = 0,k = 0;
//step5-------------------------------
for (int i=0; i<length; i++)
{
//step3-----------------------
k = i;
for (int j=i+1; j<length; j++)
{
if (a[j]<a[k])
{
k = j;
}
}
//step4-----------------------
temp = a[k];
a[k] = a[i];
a[i] = temp;
}
}