选择排序:
思想:从所有记录中选择出最小的一个数据元素与第一个位置的记录交换;然后剩下的记录当中在找最小的与第二个位置交换,循环到只剩下最后一个数据元素位置。
稳定性:不稳定。
稳定性是指:数值相同两个元素,在排序前后位置未发生改变称为稳定。
#include <stdio.h>
void SelectSort(int* arr, int length)
{
if (NULL == arr || length < 0)
return;
int i, j,minIndex;
for ( i = 0; i < length; i++)
{
minIndex = i;
// j < length -1 length -1 会少算最后一个元素,以为j = i+ 1
for (j =i + 1; j < length; j++)
{
if (arr[j] < arr[minIndex])
minIndex = j;
}
if (minIndex != i)
{
int temp = arr[i];
arr[i] = arr[minIndex];
arr[minIndex] = temp;
}
}
}
int main()
{
int arr[] = {54,38,96,23,15.72,69};
int nLength = sizeof(arr) / sizeof(arr[0]);
SelectSort(arr,nLength);
for (int i = 0; i < nLength; i++)
{
printf(" %d " ,arr[i]);
}
return 0;
}