#include <stdio.h>
void swap(int *p, int i, int j)
{
int temp = p[i];
p[i] = p[j];
p[j] = temp;
}
//方法一
void selectSort01(int *p, int n)
{
int i, j;
for (i = 0; i < n-1; i++)
{
for (j = i + 1; j < n; j++)
{
if (p[i] > p[j])
swap(p, i, j);
}
}
}
//方法二
void selectSort(int *p, int n)
{
int i, j;
for (i = 0; i < n -1; i++)
{
int min = i;
for (j = i + 1; j < n; j++)
{
if (p[j] < p[min])
min = j;
}
if (min != i)
{
swap(p, i, min);
}
}
}
int main(int argc, const char * argv[])
{
int p[] = {4, 2, 7, 1, 9, 3, 5};
int i;
int n = sizeof(p)/sizeof(int);
printf("选择排序:\n ");
//selectSort01(p, n);
selectSort(p, n);
for(i = 0; i < sizeof(p)/sizeof(int); i++)
{
printf("%d ", p[i]);
}
putchar(10);
return 0;
}