二位数组选择排序

#include<stdio.h>
int main ()

{
    int i,j;
    int a[10];
    int iTemp;
    int iPos;
    printf("为数组元素赋值:\n");
    //通过键盘为数组赋值
    for(i=0;i<10;i++)
    {
        printf("a[%d]=",i);
        scanf("%d",&a[i]);
    }
    //从小到大开始排序  核心程序
    for(i=0;i<9;i++)//0 1 2 3 4 5 6 7 8   9次循环外循环
    {
        iTemp=a[i];
        iPos=i;
        for(j=i+1;j<10;j++)// j = 1 2 3 4 5 6 7 8 9 9次内循环
        {
            if(a[j]<iTemp)
            {
                iTemp=a[j];
                iPos=j;
            }
        }
    }
    //交换两个元素的值
    a[iPos]=a[i];
    a[i]=iTemp;

    //输出数组

    for(i=0;i<10;i++)
    {
        printf("%d\t",a[i]);
        if(i==4)
          printf("\n");
    }

    return 0 ;
}

 

 

运算结果 这种排序方法遇到大的数字就有了问题 不过我也没看懂这种排序算法...

root@dire:~/cprogram# ./x选择法排序.out
为数组元素赋值:
a[0]=1123
a[1]=123
a[2]=123
a[3]=13
a[4]=12
a[5]=31
a[6]=23
a[7]=21
a[8]=3213
a[9]=12
1123    123    123    13    12    
31    23    21    3213    12    root@dire:~/cprogram# ./x选择法排序.out
为数组元素赋值:
a[0]=1
a[1]=2
a[2]=3
a[3]=4
a[4]=5
a[5]=6
a[6]=7
a[7]=8
a[8]=9
a[9]=0
1    2    3    4    5    
6    7    8    9    0    root@dire:~/cprogram#
原文地址:https://www.cnblogs.com/dire/p/4988747.html