/*--------------------------------------------------------------------
实现选择排序算法
基本思想:选择其中的第i小的元素,和i位置的元素交换;
--------------------------------------------------------------------*/
#include<stdio.h>
#define N 5
void swap(int &a, int &b)
{
int tmp = 0;
tmp = a;
a = b;
b = tmp;
}
void selectsort(int n, int array_list[])
{
int i = 0;
int j = 0;
int m = 0;
int min_num = array_list[0];
for (i=0; i<n; i++)//选择后面较小者。
{
m = i;
min_num = array_list[i];
for (j=i+1; j<n; j++)
{
if (min_num > array_list[j])
{
min_num = array_list[j];
m = j;
}
if(array_list[i] != array_list[m])
{
swap(array_list[i], array_list[m]);
}
}
}
}
int main()
{
int i =0;
int array_list[N] = {2, 333, 223, 232, 4};
//选择排序
selectsort(N, array_list);
//输出
for (i=0; i<N; i++)
{
printf("%d\n", array_list[i]);
}
return 0;
}