這是用C簡單的代碼(選擇排序):C中的選擇排序爲什麼?
#include <stdio.h>
#include <stdlib.h>
#define ItemCount 10
int numbers[ItemCount] = {4,9,3,7,2,5,10,2,12,6};
int MinNumberIndex(int start)
{
int i;
int minindex = start;
for(i=start+1;i<ItemCount;i++)
if(numbers[minindex]>numbers[i]) minindex = i;
return minindex;
}
void SelectionSort()
{
int i,temp,minindex;
for (i=0;i<10;i++)
{
minindex = MinNumberIndex(i);
temp = numbers[i];
numbers[i] = numbers[minindex ];
numbers[minindex ] = temp;
}
}
int main()
{
int i;
SelectionSort();
for(i = 0;i<10;i++) printf("%d\t",numbers[i]);
system("pause");
}
它好的工作......但如果我改變這樣一點點(在選擇排序功能):
for (i=0;i<10;i++)
{
temp = numbers[i];
numbers[i] = numbers[MinNumberIndex(i)];
numbers[MinNumberIndex(i)] = temp;
}
它不工作...爲什麼?它似乎是一樣的。