常用算法之:选择排序(C语言版)

来源:互联网 发布:找网络水军公司 编辑:程序博客网 时间:2024/06/15 16:06

选择排序算法:

/* fileName : selectSort.c *//* author   : hgy *//* data     : 2016 */#include<stdio.h>typedef int DATA_TYPE;void selectSort(DATA_TYPE *a, int n){    int maxDataPos = 0;    DATA_TYPE temp = 0;    for (int i = 0; i < n - 1; ++i)    {    maxDataPos = i;        /* 初始化最大数据所在位置 */        for (int j = i + 1; j < n; ++j)    {    if (a[i] < a[j])    {    maxDataPos = j;  /* 找到最大数据所在的位置 */    }    }    if (i != maxDataPos)     {    temp = a[i];    a[i] = a[maxDataPos];    a[maxDataPos] = temp;     }    }    }#define MAX_NUM 5int main(void){    DATA_TYPE a[MAX_NUM] = {1, 2, 3, 6, 0};    printf("before sort:");    for (int i = 0; i < MAX_NUM; ++i)    {    printf("%d ", a[i]);    }    printf("\n");    selectSort(a, MAX_NUM);    printf("after sort:");    for (int i = 0; i < MAX_NUM; ++i)    {    printf("%d ", a[i]);    }    printf("\n");        return 0;}

运行结果:

xxxMacBook:~ dede$ gcc selectSort.c 

xxxMacBook:~ dede$ ./a.out 

before sort:1 2 3 6 0 

after sort:6 3 2 1 0 


0 0
原创粉丝点击