C语言每日练习之选择排序

C语言每日练习之选择排序

选择排序算法简介

选择排序(Selection Sort)是一种简单直观的排序算法。它的基本思路是在未排序的数列中,从前往后依次选择最小的数,和第一个数进行交换,然后在剩余的数列中从前往后选择最小的数,与第二个数进行交换,直到选择到最后一个数为止。

选择排序的时间复杂度为O(n²),属于较慢的排序算法,但是它的实现简单易懂,不需要额外的空间,因此可以用来排序小规模的数据。

选择排序算法实现

以下是选择排序的C语言实现:

void selection_sort(int a[], int n) {
    int i, j;
    for (i = 0; i < n - 1; i++) {
        int min_index = i;
        for (j = i + 1; j < n; j++) {
            if (a[j] < a[min_index]) {
                min_index = j;
            }
        }
        if (min_index != i) {
            int temp = a[min_index];
            a[min_index] = a[i];
            a[i] = temp;
        }
    }
}

以上代码中,a数组表示待排序的数列,n表示数列的长度。在外层循环中,依次选择数列中的第i个元素,并记录其索引为min_index。在内层循环中,从i+1n遍历数列,找到最小值的索引,并将最小值的索引赋给min_index。如果min_index不等于i,说明第i个元素不是最小的,需要将a[i]a[min_index]进行交换。

选择排序算法示例

以下是使用选择排序对数列进行排序的示例。

示例1:对整数数组进行排序

#include <stdio.h>

void selection_sort(int a[], int n);

int main()
{
    int a[] = {30, 50, 10, 20, 40};
    int n = 5;
    selection_sort(a, n);

    printf("sorted array:\n");
    for (int i = 0; i < n; i++) {
        printf("%d ", a[i]);
    }
    printf("\n");

    return 0;
}

void selection_sort(int a[], int n) {
    int i, j;
    for (i = 0; i < n - 1; i++) {
        int min_index = i;
        for (j = i + 1; j < n; j++) {
            if (a[j] < a[min_index]) {
                min_index = j;
            }
        }
        if (min_index != i) {
            int temp = a[min_index];
            a[min_index] = a[i];
            a[i] = temp;
        }
    }
}

输出结果:

sorted array:
10 20 30 40 50

示例2:对字符串数组进行排序

#include <stdio.h>
#include <string.h>

void selection_sort(char* a[], int n);

int main()
{
    char* a[] = {"bbb", "aaa", "ddd", "ccc"};
    int n = 4;
    selection_sort(a, n);

    printf("sorted array:\n");
    for (int i = 0; i < n; i++) {
        printf("%s ", a[i]);
    }
    printf("\n");

    return 0;
}

void selection_sort(char* a[], int n) {
    int i, j;
    for (i = 0; i < n - 1; i++) {
        int min_index = i;
        for (j = i + 1; j < n; j++) {
            if (strcmp(a[j], a[min_index]) < 0) {
                min_index = j;
            }
        }
        if (min_index != i) {
            char* temp = a[min_index];
            a[min_index] = a[i];
            a[i] = temp;
        }
    }
}

输出结果:

sorted array:
aaa bbb ccc ddd

以上实例中,分别对整数数组和字符串数组进行了选择排序。字符串数组的排序使用了strcmp函数来进行字符串的比较。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C语言每日练习之选择排序 - Python技术站

(0)
上一篇 2023年5月19日
下一篇 2023年5月19日

相关文章

  • python manim实现排序算法动画示例

    首先,为了能够实现“python manim实现排序算法动画示例”,我们需要以下准备工作: 安装python及相关依赖:Manim(用于动画制作)、Numpy(用于数值计算)等。 了解Python编程语言的基础语法和数据类型。 接下来,我们可以按照以下步骤进行排序算法动画制作: 选择一种排序算法,并按照代码形式将其实现。 使用Python的可视化库,将算法过…

    算法与数据结构 2023年5月19日
    00
  • JS实现的全排列组合算法示例

    下面针对 “JS实现的全排列组合算法示例” 给出完整攻略。 什么是全排列组合算法? 全排列组合是指将一个集合中的元素排成一列,可以有不同的排列方式,这些不同的排列方式就称为全排列。当从这个集合中取出一部分排成一列时,称为排列,而取出一部分组合称为组合。 JS实现全排列组合算法的步骤 具体实现全排列组合算法的步骤如下: 定义需要排列和组合的数组或字符串; 定义…

    算法与数据结构 2023年5月19日
    00
  • js实现常用排序算法

    JS实现常用排序算法 排序算法是计算机领域中的重要算法之一,其作用是将一组无序的数据按照一定的规则进行排列,便于数据的查找和统计。在前端开发领域中,JS是常用的编程语言,下面一起来详细讲解如何用JS实现常用排序算法。 冒泡排序 冒泡排序是一种简单的排序算法,其具体思路是对需要排序的元素从头开始进行比较,如果前一个元素比后一个元素大,就交换这两个元素的位置,一…

    算法与数据结构 2023年5月19日
    00
  • JavaScript中数组随机排序的实现详解

    下面是我对于“JavaScript中数组随机排序的实现详解”的完整攻略。 概述 在JavaScript中,数组是一个非常有用的数据类型,而随机排序是在处理数组时非常实用的一种技术。本攻略将为你详细讲解如何实现JavaScript数组的随机排序。 方法一:使用sort()方法 JavaScript中的数组包含一个sort()方法,可以对数组中的元素进行排序。我…

    算法与数据结构 2023年5月19日
    00
  • java如何给对象按照字符串属性进行排序

    在 Java 中,我们可以使用 Collections.sort() 方法对任意类型的对象进行排序。但是,如果我们想要按照对象的某一个字符串属性进行排序,我们可以使用 Comparator 接口来实现。 具体步骤如下: 首先,创建一个 Comparator 对象,重写 compare() 方法,按照需要的属性进行排序。例如,如果我们要按照对象的 name 属…

    算法与数据结构 2023年5月19日
    00
  • Redis使用ZSET实现消息队列使用小结

    Redis使用ZSET实现消息队列使用小结 概述 Redis是一款功能强大的开源的In-Memory数据结构存储系统,除了支持key-value结构外,它还提供了List、Set、Hash和ZSet。其中ZSet是有序集合,它可以在插入元素时指定一个score值,可以根据score进行排序,也可以查看属于某个score范围内的元素。因此,ZSet也可以用来实…

    算法与数据结构 2023年5月19日
    00
  • 2020年新浪最新PHP试题和答案解析

    2020年新浪最新PHP试题和答案解析攻略 作为新浪最新的PHP试题,本门考试难度较高。以下是一些考试攻略以及答案解析。 试题分析 本次试题由多道选择题和编程题组成,主要考察PHP语言基础、框架使用、数据库操作等方面的知识。 选择题 本次选择题共15道,主要考察PHP基础语法、函数使用、面向对象编程、异常处理等方面的知识。 编程题 本次编程题共2道,主要考察…

    算法与数据结构 2023年5月19日
    00
  • Python实现选择排序

    当我们需要对一个列表或数组进行排序时,选择排序是一种简单易懂的方法。Python是一种非常流行的编程语言,它可以轻松实现选择排序。 以下是Python实现选择排序的攻略: 选择排序的原理 选择排序是一种简单直观的排序算法,其基本思想是每次选择出最小的元素,放到已经排好序的部分的末尾。 实现步骤 找到未排序部分的最小元素; 将其放在已排序部分的末尾; 重复步骤…

    算法与数据结构 2023年5月19日
    00
合作推广
合作推广
分享本页
返回顶部