117.info
人生若只如初见

c语言直接选择排序算法怎么实现

直接选择排序(Selection Sort)是一种简单直观的排序算法。它的基本思想是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。

下面是C语言实现直接选择排序的代码:

#include 

void selectionSort(int arr[], int n) {
    int i, j, minIndex, temp;
    
    // 遍历数组
    for (i = 0; i < n - 1; i++) {
        minIndex = i; // 记录最小元素的下标
        
        // 在未排序的部分中找到最小元素的下标
        for (j = i + 1; j < n; j++) {
            if (arr[j] < arr[minIndex]) {
                minIndex = j;
            }
        }
        
        // 将最小元素与当前位置交换
        temp = arr[i];
        arr[i] = arr[minIndex];
        arr[minIndex] = temp;
    }
}

int main() {
    int arr[] = {64, 25, 12, 22, 11};
    int n = sizeof(arr) / sizeof(arr[0]);
    
    selectionSort(arr, n);
    
    printf("排序后的数组:");
    for (int i = 0; i < n; i++) {
        printf("%d ", arr[i]);
    }
    
    return 0;
}

输出结果:

排序后的数组:11 12 22 25 64

以上代码中,selectionSort函数实现了直接选择排序算法。它使用两个嵌套的循环,外层循环控制每一轮的排序,内层循环在未排序的部分中找到最小元素的下标。然后通过交换操作,将最小元素与当前位置进行交换。最终得到一个有序的数组。

未经允许不得转载 » 本文链接:https://www.117.info/ask/fee3eAzsLAgZUA1U.html

推荐文章

  • c语言goto用法是什么

    在C语言中,goto语句用于从一个位置跳转到另一个位置。它可以用于跳出循环、条件语句或者函数。goto语句的语法如下:
    goto label;
    ...
    label: //...

  • goto在c语言中的运用方法是什么

    goto 语句在 C 语言中允许程序从一个位置跳转到另一个位置。然而,在实际编程中,过度使用 goto 语句通常被认为是一种不好的编程实践,因为它可能导致代码结构混...

  • c语言堆和栈的区别是什么

    C语言中的堆和栈是两种不同的内存分配方式。 栈(Stack):栈是由编译器自动分配和释放的内存区域,用于存储局部变量和函数调用的上下文信息。栈的特点是先进后出...

  • C语言结构体数组怎么定义和使用

    在C语言中,可以通过定义结构体数组来存储多个具有相同数据类型的结构体对象。下面是定义和使用结构体数组的示例代码:
    #include // 定义一个结构体类型

  • c语言函数怎么返回多个值

    在C语言中,函数只能返回一个值。但可以使用指针或结构体的方式来实现返回多个值。 使用指针:可以将函数需要返回的多个值存储在参数中传入函数,并通过指针进行...

  • c语言定时器如何设置时间

    在C语言中,可以使用头文件中的time()函数来获取当前时间戳,然后通过比较时间戳来实现定时器。
    下面是一个简单的示例代码,演示了如何设置一个定时器来每隔...

  • pycharm中文显示不正常怎么解决

    在PyCharm中,如果你的中文显示不正常,可以尝试以下方法解决: 检查PyCharm的编码设置: 打开PyCharm,点击顶部菜单栏的"File",选择"Settings"。
    在弹出的...

  • linux怎么清除u盘使用记录

    要清除Linux系统中U盘的使用记录,可以按照以下步骤进行操作: 插入U盘并确保它已被挂载到系统中。 打开终端。 运行以下命令以查看U盘的挂载点:
    df -h 假设...