排序C语言

//选择排序
#include <stdio.h> main() { int a[10]={1,3,99,1,4,7,2,3,1,6},i,j,k,t,b; for(i=0;i<=9;i++) { k=i; for(j=i+1;j<=9;j++) if(a[k]<a[j]) { k=j;//第一轮:1<3 k=1,a[k]=3;3<99 k=2,a[k]=99;99>1,99>4,99>7,99>6,选出最大值99;第二轮选出7,依次类推 } if(i!=k) { t=a[i];a[i]=a[k];a[k]=t; } for(b=0;b<=9;b++) { printf("%3d",a[b]);//显示每一轮的选择结果 } printf("\n"); } for(i=0;i<=9;i++) { printf("%4d",a[i]); } getchar(); }

 

//冒泡排序
#include <stdio.h> main() { int a[10]={1,3,99,1,4,7,2,3,1,6},i,j,k,t,b; for(i=0;i<=9;i++) { for(j=0;j<9-i;j++) if(a[j]>=a[j+1]) { t=a[j];a[j]=a[j+1];a[j+1]=t; } for(b=0;b<=9;b++) { printf("%d,",a[b]);//显示每一轮的排序结果 } printf("\n"); } for(i=0;i<=9;i++) { printf("%4d",a[i]); } getchar(); }

//冒泡排序内循环小于等于结果意外
#include <stdio.h>
main()
{
    int a[10]={1,3,99,1,4,7,2,3,1,6},i,j,k,t,b;
    for(i=0;i<=9;i++)
    {    
        for(j=0;j<=9-i;j++)
        if(a[j]>=a[j+1])
            {
            t=a[j];a[j]=a[j+1];a[j+1]=t;
            }
    
    for(b=0;b<=9;b++)
    {
        printf("%d,",a[b]);//显示每一轮的排序结果 
    }
    printf("\n");
     } 
    for(i=0;i<=9;i++)
    {
        printf("%4d",a[i]);
    }
    getchar();
 }

 

//冒泡排序方法 排序过程显示
#include <stdio.h>
int main()
{
    int i,j,t,a[10]={526,36,2,369,56,45,78,92,126,54},v;    //定义变量及数组为基本整型
    for(i=0;i<=9;i++)
        for (j=i+1;j<10;j++)
           { if(a[i]>a[j])    //如果前一个数比后一个数大,则利用中间变量t实现两值互换
            {
                t=a[i];
                a[i]=a[j];
                a[j]=t;
            }
            for(v=0;v<10;v++)
        printf("%5d", a[v]);    //输出排序后的数组
    printf("\n");}
    printf("排序后的顺序是:\n");
    for(i=0;i<10;i++)
        printf("%5d", a[i]);    //输出排序后的数组
    printf("\n");
    return 0;
}

 

posted @ 2021-10-07 06:53  myrj  阅读(58)  评论(0编辑  收藏  举报