简单选择排序
简单选择排序
第一次遍历:将数组中第一个数假设为最小数
第二次遍历:除去第一个数以外的数,找出最小的放在第一个的位置
如此往复遍历
#include<stdio.h>
void SelectSort(int arr[], int len)
{
int i, j, tmp, flag;
for(i = 0; i < len - 1; i++)
{
tmp = arr[i];
flag = i;
for(j = i + 1; j < len; j++)
{
if(arr[j] < tmp)
{
tmp = arr[j];
flag = j;
}
}
if(i != flag)
{
arr[flag] = arr[i];
arr[i] = tmp;
}
}
}
int main()
{
int i, length;
int a[8] = {23, 90, 5, 201, 78, 45, 18, 30};
length = sizeof(a)/sizeof(a[0]);
SelectSort(a, length);
for(i = 0; i < length; i++)
{
printf("%d ", a[i]);
}
return 0;
}