李洋疯狂C语言之选择排序

来源:互联网 发布:淘宝stefano ricci皮带 编辑:程序博客网 时间:2024/05/23 12:31

选择排序法
原理:
选择法循环过程与冒泡法一致,它还定义了记号min=i,然后依次把a[min]同后面的元素比较,若a[min]>a[j],则使k=j. 最后看看k=i是否还成立,不成立则交换a[k], a[i],这样就比冒泡法省下许多无用的交换,提高了效率。

void choise (int *a, int n)     /*选择排序函数*/{    int i, j, min, temp;    for (i = 0; i <= n; i++)    {        min = i;                    //给记号赋值        for (j = i+1; j < n; j++)        {            if (a[min] > a[j])                min = j;                //min总是指向最小元素        }        if (i != min)           //当min!=i才交换,否则a[i]即为最小        {            temp = a[i];            a[i] = a[min];            a[min] = temp;        }    }}

附上输出函数和主函数

void print(int *a, int n){    int i;    for (i = 0; i < n; i++)        printf ("%5d", a[i]);    printf ("\n");}
int main(){    int a2[] = {13,0,5,8,1,7,21,50,9,2};    printf("according to choise:");     choise(a2,10);    print(a2, 10);    return 0;}
原创粉丝点击