c语言实现选择排序

该博客展示了如何使用C语言实现选择排序算法,对一个整型数组进行从小到大的升序排序。首先,通过`random_array`函数生成了一个包含10个随机整数的数组,然后调用`select_sort`函数进行排序。最后,`show_array`函数用于打印排序前后的数组,以验证排序效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

系统:win10

软件工具:vs2019

编程语言:C语言

选择排序原理:第一次从待排序的数据中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。(百科)

功能:选择排序对数组中的数进行排序(由小到大升序).

实现的代码:

#include<stdio.h>
#include<stdlib.h>
#include<time.h>

#define N 10

void random_array(int a[], int n)// 获取随机数组
{
    int i;
    srand(time(NULL));
    for (i = 0;i < n;i++)
        a[i] = rand() % 100;
}

void select_sort(int a[], int n)// 选择排序算法: 小到大排序
{
    int i, j, tmp,k;
    for (i = 0;i < n;i++)
    {
        k = i;     //借助k,指出未排序时的首位

        for (j = i+1;j < n;j++)
        {
            if (a[k] >a[j])
            {
                k = j;// 发现有比首位小的数时,更新k值
            }
                
        }

        tmp = a[i];
        a[i] = a[k];
        a[k] = tmp;
    }

}

void show_array(int a[], int n)// 打印数组数据
{
    int i;
    for (int i = 0;i < N;i++)
    {
        printf("%3d", a[i]);
    }

}

void main(void)
{
    int arr[N];
    random_array(arr, N);// 获取随机数组
    show_array(arr, N);    // 打印随机数组的值
    printf("\n");         // 换行
    select_sort(arr, N);// 选择排序算法: 小到大排序
    show_array(arr, N);// 打印排序之后的数组
    printf("\n");        // 换行
    system("pause");
}

运行结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值