Java版本
/*************************************************************************
> File Name: ChooseSort.java
> Author: lxm
> Created Time: 2016年04月27日 星期三 19时54分22秒
************************************************************************/
public class ChooseSort
{
public static void main(String[] args)
{
int[] a = {6,1,2,7,9,3,4,5,10,8};
chooseSort(a);
printArray(a);
}
public static void chooseSort(int[] a)
{
int len = a.length;
int min = 0;
for(int i=0;i<len-1;i++)
{
min = i;
for(int j=i+1;j<len;++j)
{
if(a[j]<a[min])
{
min = j;
}
}
if(min != i)
{
swap(a,min,i);
}
}
}
public static void swap(int[] a, int m, int n)
{
a[m] ^= a[n];
a[n] ^= a[m];
a[m] ^= a[n];
}
public static void printArray(int[] a)
{
for(int item:a)
{
System.out.printf("%d ",item);
}
System.out.println();
}
}
C版本
/*************************************************************************
> File Name: ChooseSort.java
> Author: lxm
> Created Time: 2016年04月27日 星期三 19时54分22秒
************************************************************************/
#include <stdio.h>
#define N 10
void chooseSort(int* a, int n);
void printArray(int* a, int n);
void swap(int* a, int* b);
int main(void)
{
int a[] = {6,1,2,7,9,3,4,5,10,8};
chooseSort(a,N);
printArray(a,N);
return 0;
}
void chooseSort(int* a, int n)
{
int i,j,min;
for(i=0;i<n-1;i++)
{
min = i;
for(j=i+1;j<n;j++)
{
if(a[j]<a[min])
{
min = j;
}
}
if(min != i)
{
swap(&a[i],&a[min]);
}
}
}
void printArray(int* a, int n)
{
int i;
for(i=0;i<n;++i)
{
printf("%d ",a[i]);
}
printf("
");
}
void swap(int* a, int* b)
{
*a ^= *b;
*b ^= *a;
*a ^= *b;
}