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语言dfs算法怎么实现

    C语言中实现深度优先搜索(DFS)算法的一种常见方法是使用递归。下面是一个简单的示例:
    #include #define MAX_VERTICES 100 int graph[MAX_VERTICES][MAX_...

  • C语言怎么使用scanf()读取字符串

    要使用scanf()函数读取字符串,需要使用%s格式控制符。以下是一个示例:
    #include int main() { char name[50]; printf("请输入您的名字:"); scanf("%s", ...

  • c语言如何调用其他源文件

    在C语言中,可以使用#include指令将其他源文件包含到当前源文件中。这样可以在当前源文件中直接调用其他源文件中定义的函数、变量等。
    假设有两个源文件:m...

  • C语言中string转int的方法是什么

    C语言中将字符串转换为整数的方法有多种,以下是其中的几种常见方法: 使用标准库函数atoi(): #include int main() { char str[] = "1234"; int num = atoi(str...

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

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

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

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

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

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

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

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