选择排序的C程序

选择排序的c程序

选择排序是一种攻击性算法,它的工作原理是从数组中找到最小的数字,然后将其放在第一个位置。下一个要遍历的数组将从最小数字所在位置的下一个索引开始。

让我们举个例子来更清楚地说明这个概念。

我们有一个数组 {6, 3, 8, 12, 9} 在这个数组中最小的元素是 3。所以我们将 3 放在第一个位置,之后数组将看起来像 {3, 6, 8, 12, 9} 。现在我们将再次找到最小的数字,但这次我们不会在搜索中考虑 3,因为它在它的位置。找到下一个最小元素 6,在第二个位置创建一个包含 6 的数组,然后再次在数组中搜索,直到数组排序完毕。

选择排序算法的工作原理 –

选择排序算法遵循以下步骤

让我们采用一个数组 {20, 12 , 23, 55 ,21}

将数组的第一个元素设置为最小值。

最小值= 20

将最小值与下一个元素进行比较,如果它小于最小值分配该元素为最小值。这样做直到数组末尾。

与 12 : 20 > 12 比较,最小值 = 12

与 23 : 12 与 55 比较:12

与 21 比较:12

将最小值放在数组的第一个位置(索引 0)。

Array = {12, 20 ,23, 55, 21}

对于下一次迭代,开始从第一个未排序元素开始排序。

Array = {12, 20 ,23, 55, 21}

从 20 开始搜索,下一个放置最小值的元素。

迭代 2:

最小值 = 20

与 23 相比:20

与 55 相比:20

与 21 相比:20

最小值不变,

数组 = {12, 20 ,23, 55, 21}

迭代 3:

最小值 = 23。

与 55 相比:23

与 21 相比: 23 > 21 ,最小值 = 21

最小值移至索引 = 2

Array = {12, 20, 21, 55, 23}

迭代 4:

最小值 = 55

与 23 相比:23

最小值移至索引 3数组 = { 12 , 20 , 21 , 23 , 55 }

示例

#include int main() {   int arr[10]={6,12,0,18,11,99,55,45,34,2};   int n=10;   int i, j, position, swap;   for (i = 0; i  arr[j])            position = j;      }      if (position != i) {         swap = arr[i];         arr[i] = arr[position];         arr[position] = swap;      }   }   for (i = 0; i 

输出

0 2 6 11 12 18 34 45 55 99

登录后复制

以上就是选择排序的C程序的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2585645.html

(0)
上一篇 2025年3月6日 15:05:40
下一篇 2025年2月28日 18:27:53

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • C++程序,用于计算给定弧度值的双曲正切值

    与常规三角函数类似,双曲函数是使用双曲线而不是圆来定义的。在双曲几何中,双曲函数用于计算角度和距离。此外,它们还可以在大量线性微分方程、三次方程等的答案中找到。对于给定的角度$heta$。双曲正切函数 tanh$(heta)$ 如下 &#8…

    2025年3月6日
    200
  • 第n个卡塔兰数的C程序

    Given an interger n; the task is to find the Catalan Number on that nth position. So, before doing the program we must k…

    2025年3月6日
    200
  • 检查矩阵是否为反对称的C程序?

    如果对于所有的i和j,方阵A的元素满足aij=−aji,则称方阵A为反对称矩阵。换句话说,如果矩阵A的转置等于矩阵A的负值,即(AT=−A),则称矩阵A为反对称矩阵。 请注意,反对称矩阵的所有主对角线元素都为零。 让我们举一个矩阵的例子 A…

    2025年3月6日
    200
  • 编写一个C程序,使用while循环计算句子的平均单词长度

    问题 在运行时输入一个句子,并编写一段代码来计算句子中出现的单词的平均长度 解决方案 算法 STARTStep 1: declare character, int and double variablesStep 2: Enter any …

    2025年3月6日
    200
  • 计算六边形内切圆内的正方形面积的C程序

    给定一个正六边形内接的圆内切的正方形,我们需要找到正方形的面积,为此我们需要找到正方形边长和正六边形边长之间的关系。 正六边形内接圆的半径的数学公式为,r=A√3/2 由于正方形的对角线等于圆的直径,所以半径和边长之间的关系为,a=√r 根…

    2025年3月6日
    200
  • C++程序用于通过键更新字典的值

    许多计算机语言都提供字典,这是一种数据结构。字典是一种更快的数据结构,它基于键和值存储数据。它保留了键值组合,以便键可以几乎实时地轻松搜索某些组件。 C++ STL 语言标准包括类似字典的数据结构。术语“map”用于描述这种数据结构。该映射…

    2025年3月6日
    200
  • C程序找到nCr和nPr

    在C编程语言中,nCr被称为组合。 nCr 是从 n 个对象的集合中选择 r 个对象,其中对象的顺序并不重要。 nPr 称为排列 。 nPr 是一组“n”个对象中“r”个对象的排列,这些对象应该按顺序或序列排列。 排列和组合公式 求排列的公…

    2025年3月6日
    200
  • 获取给定数字的大小的C++程序

    给定数字的大小意味着该特定数字之间的差异和零。它还可以表示一个数学对象相对于该数学对象中其他对象的大小同种。我们将遵循这里的第一个定义,以及大小或绝对值数字的表示为 |x|,其中 x 是实数。我们探索展示的方式给定实数的绝对值或大小。 朴素…

    2025年3月6日
    200
  • C程序计算3D空间中三个点之间的距离

    给定一个三维平面,因此有三个坐标,任务是找到给定点之间的距离并显示结果。 在三维平面上,有三个坐标轴,x轴的坐标为(x1,y1,z1),y轴的坐标为(x2,y2,z2),z轴的坐标为(x3,y3,z)。计算它们之间的距离有一个直接的公式如下…

    2025年3月6日
    200
  • C程序中的前n个自然数之和

    找到整数和的和的概念是这样找到的,首先,我们将找到从1到n的数字的和,然后将所有的和相加,得到一个值,这个值就是我们所需的和的和。 对于这个问题,我们给出了一个数字n,我们要找到和的和,让我们举个例子来找到这个和。 n = 4 登录后复制 …

    2025年3月6日
    200

发表回复

登录后才能评论