选择排序

#include<stdio.h>

void swap(int *a,int *b)
{
    int temp = *a;
    *a = *b;
    *b = temp;
}

int MinKey(int *arr,int low,int high)
{
    int min = low;
    int key = arr[low];
    int i;
    for(i = low + 1; i < high; i++)
    {
        if(key > arr[i])
        {
            key = arr[i];
            min = i;
        }
    }
    return min;
}

void select(int *arr,int n)
{
    int i;
    for(i = 0; i < n; i++)
    {
        int j = MinKey(arr,i,n);
        if( i != j)
        {
            swap(&arr[i],&arr[j]);
        }
    }
}

int main()
{
    int array[5] = {0,14,53,1,37};
    select(array,5);
    int i;
    for(i = 0; i < 5; i++)
    {
        printf("array[%d] = %d
",i,array[i]);
    }
    return 0;
}
原文地址:https://www.cnblogs.com/wanghao-boke/p/11265882.html