用选择法对十个整数排序

用选择法对十个整数排序 这十个整数没有要求 随便十个整数都行 编写个程序


//选择排序 
#include<stdio.h>
#include<stdlib.h>

int n;//设置全局变量n存数组长度,即多少个数遍历 

void  swap(int arr[], int* a, int* b) {//数组俩元素交换 
        
        int c=0;
        c = arr[*a];
        arr[*a] = arr[*b];
        arr[*b] = c;
    
}
void printArray(int arr[]) {//遍历输出数组
    int i = 0;
    for (i = 0;i < n;i++) {
        printf("%d  ", arr[i]);
    }
}

int main() {
    int array[10];//自定义要比较的元素个数 
    int i = 0;
    int j, k;
    int index;//index存最小元素下标 
    n=sizeof(array)/sizeof(array[0]);//获取数组长度 
    printf("%d个随机数排序!原数组为: \n\n",n);

    while (i < n) {//数组初始化赋值 
        //scanf("%d",&array[i]); 
        array[i] = rand() % 100 + 1;//0-99随机数 
        i++;
    }

    printArray(array);//输出原数组
         
    //数组赋值完毕时 i=n-1; 10个数i为9 
    for (j = 0;j <i-1;j++) //例如:10个数外层循环9次 , j从0取到8
    { 
        //初始化index 为j,外循环一次变一次
            index =j;
         /*内层循环中:
         每个k下标数都和index下标数比较一次 
         
         第一轮是0下标元素与1~8下标元素逐一比较,比较完成后最小值放0下标处
         第二轮是1下标元素 与2~8下标元素逐一比较... 比较完后最小值放1下标处 
         .
         .
         .
         最后一轮是 7下标元素 与 8下标元素比较...比较完小值放7下标处,最后剩8下标处元素不用比较 
         第一次循环比较8次,之后比较次数递减 
         */
         for (k =index+1;k < i ;k++)
        {
                 
            if (array[index]>array[k])//如果k下标指向数较小,则替换最小下标,即语句index=k;
            {
                index=k; 
            }
                    
        }
            if(j!=index)//如果初始index下标值(即j值)不等于替换后的index下标值,则交换,使index下标指向最小值,最小值放最前边 
            {                    
            swap(array,&index,&j); //交换
            }
    }
    printf("\n\n选择排序后为: \n\n");
    printArray(array);//输出排序后数组 

}

我写过一个选择排序法



#include<stdio.h>
void main()
{
    int i, j;
    char t;
    int a[10] = { 1,3,4,2,9,5,7,6,8,0 };
    for (i = 0; i < 10 - 1; i++)     //选择排序
        for (j = i + 1; j < 10; j++)
            if (a[i] > a[j])
            {
                t = a[j]; 
                a[j] = a[i]; 
                a[i] = t;
            }
    for (i = 0; i < 10; i++)   //输出排序后数组
        printf("%d", a[i]);
}