这种排序算法的实现很容易理解 就是从后面的序列中找一个最小的出来,不断的找啊 找最后整个堆找没了就完了
思路很简单, 就好像你在人家教室外面喊 第一名出来,然后第一名出来 ,第二名出来 ,第二名出来, 如此下去 整个教室就空了, 选择排序一样,就是 第一次喊 最小的出来,然后 把最小的 给推出去, 不断的喊 喊道整个序列都没了 也就有序了 下面是具体的算法的实现的例子 大家可以看看
void sort(int * p, int len)
{
for (int i = 0; i<len; i++)
{
int k = i;
for (int j = i + 1; j<len; j++)
{
if (*(p + j) < *(p + k))
{
k = j;
}
}
if (k != i)
{
int temp = *(p + i);
*(p + i) = *(p + k);
*(p + k) = temp;
}
}
}
int main(int argc, char* argv[])
{
int a[] = {-90, 23, -1, 12, 4, 89, 4};
sort(a, 7);
for (int i = 0; i < 7; i++)
{
printf("%d ", a[i]);
}
system("pause");
return 0;
}