C++程序:对数组元素进行升序排序

c++程序:对数组元素进行升序排序

为了有效地解决一些问题,将数据项排列在正确的位置非常重要顺序。最流行的排列问题之一是元素排序问题。这本文将演示如何在 C++ 中按升序排列数组成员(根据值不断上升)。

要按特定顺序排列数字或非数字元素,有多种方法排序算法可用于该领域。只需两种简单的排序技术即可将在本文中介绍。选择排序和冒泡排序。让我们逐一检查一下单独使用适当的技术和 C++ 实现代码。

使用冒泡排序技术按升序对数组进行排序

对数组组件进行排序的最流行和最直接的方法之一是冒泡排序方法。在此方法中,依次检查两个元素以看看它们的顺序是否正确。如果不是,该方法会交换元素,直到它们顺序正确。之后,向右移动并对另一组重复该过程的价值观。单个元素在结束时被放置在正确的预期位置冒泡分选技术的几个阶段的每个阶段。看看冒泡排序算法。

算法

读取数组 A 及其大小 n 作为输入对于 i 的范围从 0 到 n-1,执行对于 j 的范围从 0 到 n – 2,执行如果 A[j] > A[j + 1],则交换 A[j] 和 A[j + 1]如果结束结束结束

示例

#include using namespace std;void display( int arr[], int n ){   for ( int i = 0; i < n; i++ ) {      cout << arr[i] << ", ";   }}void swap ( int &a, int &b ){   int temp = a;   a = b;   b = temp;}void solve( int arr[], int n ){   int i, j;   for ( i = 0; i < n; i++ ) {      for ( j = 0; j  arr[ j+1 ] ) {            swap( arr[j], arr[ j + 1 ] );         }      }   }}int main(){   int arr[] = {8, 45, 74, 12, 10, 36, 58, 96, 5, 2, 78, 44, 25, 12, 89, 95, 63, 84};   int n = sizeof( arr ) / sizeof( arr[0] );   cout << "Array before sorting: ";   display(arr, n);   solve( arr, n );   cout << "nArray After sorting: ";   display(arr, n);}

输出

Array before sorting: 8, 45, 74, 12, 10, 36, 58, 96, 5, 2, 78, 44, 25, 12, 89, 95, 63, 84, Array After sorting: 2, 5, 8, 10, 12, 12, 25, 36, 44, 45, 58, 63, 74, 78, 84, 89, 95, 96, 

使用选择排序技术按升序对数组进行排序

当使用选择排序策略时,我们从索引 I 开始一直到结束给定数组,找到最小或最大元素。假设我们是揭示每一种成分。它定位从索引 I 到末尾的最小元素每个阶段,将元素放置在适当的位置,然后重复该过程从索引 I + 1 中查找下一个最大元素,依此类推。这些阶段即将完成,然后整个数组将被适当排序。

算法

读取数组 A 及其大小 n 作为输入对于 i 的范围从 0 到 n-1,执行ind := A 中从 i 到 n 的最小元素索引如果 A[ i ] > A[ ind ],则交换 A[ i ] 和 A[ ind ]​​i>如果结束结束

示例

#include using namespace std;void display( int arr[], int n ){   for ( int i = 0; i < n; i++ ) {      cout << arr[i] << ", ";   }}void swap ( int &a, int &b ){   int temp = a;   a = b;   b = temp;}int min_index( int arr[], int n, int s, int e ){   int min = 99999, min_ind = -1;   for ( int i = s; i < e; i++ ) {      if ( arr[i] < min ) {         min = arr[i];         min_ind = i;      }   }   return min_ind;}void solve( int arr[], int n ){   int i, j, ind;   for ( i = 0; i  arr[ ind ] ) {         swap( arr[i], arr[ ind ] );      }   }}int main(){   int arr[] = {8, 45, 74, 12, 10, 36, 58, 96, 5, 2, 78, 44, 25, 12, 89, 95, 63, 84};   int n = sizeof( arr ) / sizeof( arr[0] );   cout << "Array before sorting: ";   display(arr, n);   solve( arr, n );   cout << "nArray After sorting: ";   display(arr, n);}

输出

Array before sorting: 8, 45, 74, 12, 10, 36, 58, 96, 5, 2, 78, 44, 25, 12, 89, 95, 63, 84, Array After sorting: 2, 5, 8, 10, 12, 12, 25, 36, 44, 45, 58, 63, 74, 78, 84, 89, 95, 96, 

结论

一个基本问题是排序,它涉及根据顺序排列数字或其他项目预定的布局逻辑。该领域还有许多其他可用的排序技术,但在这篇文章中,我们将重点关注两个易于使用和理解的。这两个排序技术有选择排序技术和冒泡排序技术。我们有使用这两种技术按升序(非降序)排列数据集。虽然时间效率不是很高,但这两种排序技术很简单。两者的这两种技术需要 O(n2) 的时间投入,其中 n 是输入。只要判断是否有变化,后续阶段就不会发生变化任何阶段都没有交换,可以使冒泡排序更快。

以上就是C++程序:对数组元素进行升序排序的详细内容,更多请关注创想鸟其它相关文章!

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月17日 22:10:12
下一篇 2025年12月16日 12:51:13

相关推荐

  • 在C++中以升序交替方式重新排列奇数和偶数值

    我们得到一个包含正数和负数的整数类型数组,比方说,任意给定大小的 arr[] 。任务是以这样的方式重新排列数组:当数组中的最低元素为奇数时,数组中的元素将以奇数在前、偶数在前的方式重新排列第二种方式。当数组中的最低元素为偶数时,数组的元素将以偶数第一、奇数第二的方式重新排列,如果偶数/奇数元素的数量…

    2025年12月17日
    000
  • 找到C++中修改后数组的最小值的最大可能值

    在这个问题中,我们给定一个大小为 n 的数组 arr[] 和一个数字 S。我们的任务是找到修改后的数组的最小值的最大可能值。 p> 这里是修改数组的规则, 修改前后数组元素之和应为S。 修改后的数组中不允许有负值。 如果修改后的数组,需要数组的最小值最大化。 立即学习“C++免费学习笔记(深入…

    2025年12月17日
    000
  • 如何在C语言中将整个数组作为参数传递给函数?

    数组 数组是一组具有相同名称的相关项。以下是将数组作为参数传递给函数的两种方式: 将整个数组作为参数传递给函数将单个元素作为参数传递给函数 将整个数组作为参数传递给函数 要将整个数组作为参数传递,只需在函数调用中发送数组名称。 要接收一个数组,必须在函数头中声明。 示例1 #includemain …

    2025年12月17日
    000
  • 根据给定条件,从数组中构建一个长度为K的二进制字符串

    在本教程中,我们需要构造一个长度为 K 的二进制字符串,如果使用数组元素可以实现等于 I 的子集和,则它的第 i 个索引处应包含“1”。我们将学习两种解决问题的方法。在第一种方法中,我们将使用动态规划方法来检查子集和等于索引“I”是否可能。在第二种方法中,我们将使用位集通过数组元素查找所有可能的和。…

    2025年12月17日
    000
  • 排序二进制字符串所需删除的最小字符数,以使其按升序排列

    在计算机科学中,字符串操作是一个重要的主题,涉及到拼接、子串、反转等操作。与字符串操作相关的一个常见问题是从二进制字符串中移除所有的0。在本文中,我们将讨论一种使用最少数量的非相邻对翻转来解决这个问题的算法。 问题陈述 给定一个二进制字符串,我们必须使用最少次数的非相邻对翻转来删除字符串中的所有 0…

    2025年12月17日
    000
  • C++程序在数组开头添加元素

    通过使用数组和数据结构,可以在多个内存位置上存储同质(相同)数据。使用数组的关键好处是我们可以使用索引参数从任何位置检索它们。这种数据结构变得线性,因为数据必须逐步插入和提取。我们只需要将该元素的索引或位置号放在方括号内,就可以从数组中检索它。在本文中,我们将使用数组A和另一个元素e。我们将在C++…

    2025年12月17日
    000
  • 按字符的ASCII值对字符串进行排序

    ASCII 值 ASCII(美国信息交换标准代码)是计算机和互联网上文​​本数据最常见的字符编码格式。在标准 ASCII 编码数据中,256 个字母、数字或特殊附加字符和控制代码都有唯一值。 问题陈述 现在,在这个问题中,我们需要根据字符的 ASCII 值按升序找到排序后的字符串,其中该字符串将是用…

    2025年12月17日
    000
  • 使用STL根据因子数量进行排序

    使用STL对向量进行排序是小菜一碟。我们可以使用著名的sort()函数来完成这个任务。真正的挑战是计算每个数字的因子数量。 因子是能够完全整除另一个数的数字,即余数为零。 遍历所有数字以计算因子可能是一种方法,但我们将在本文中尝试优化和达到高效的解决方案。 问题陈述 根据每个数字的因子数量按升序对给…

    2025年12月17日
    000
  • 使用C++找到数组中唯一配对的数量

    我们需要适当的知识才能在 C++ 的数组语法中创建几个唯一的对。在查找唯一对的数量时,我们计算给定数组中的所有唯一对,即可以形成所有可能的对,其中每个对应该是唯一的。例如 – Input : array[ ] = { 5, 5, 9 }Output : 4Explanation : Th…

    2025年12月17日
    000
  • C++程序按值对字典进行排序

    有一些被称为字典的数据结构在各种计算机语言中可用。一种特殊形式的更快的数据结构,它根据键和值存储数据,就是字典。它将键值对保留在那里,以便可以通过键快速搜索某些组件,几乎实时。类似字典的数据结构包含在C++ STL语言标准中。这个数据结构被称为”map“。map生成任何类型的…

    2025年12月17日
    000
  • 一个数组可以重复分割成具有相等和的子数组的次数

    在C++中,我们有一个vector头文件,可以在运行时更改数组的大小。在本文中,我们将学习数组可以重复分割成具有相等和的子数组的次数的概念。 Let’s take an example to show an array partition with an equal sum. 给定的数组是{1,2,…

    2025年12月17日
    000
  • C程序用于在数组中找到第二大和第二小的数字

    输入数组元素,然后使用交换技术按降序排列数字。随后,在索引位置的帮助下,尝试打印数组中第二大和第二小的元素。 数组用于保存同一个名称下的一组公共元素。 数组用于保存同一个名称下的一组公共元素。 p> C 语言中的数组操作如下 – 插入删除搜索 li> 算法 下面给出的是一种查…

    2025年12月17日
    000
  • 用C++编写一个程序,找出数组中所有元素对之间第k小的差值

    假设我们有一个包含多个整数的列表。我们必须找出数组中每对值之间的差异,并找出第 k 个最小的差异数。索引从 0 开始,值 k 作为输入提供给我们。 因此,如果输入类似于numbers = {2, 6, 4, 8}, k = 2,那么输出将为 2。 两对之间的差异为 – (2, 6) = …

    2025年12月17日
    000
  • C程序在数组中找到最小和最大的质数

    问题陈述 给定一个包含 n 个正整数的数组。我们必须找到素数具有最小值和最大值的数字。 如果给定的数组是 – arr [] = {10, 4, 1, 12, 13, 7, 6, 2, 27, 33}then minimum prime number is 2 and maximum pr…

    2025年12月17日
    000
  • 使用给定的操作将数组缩减为一个整数,使用C++实现

    给定一个整数变量Number作为输入。让我们考虑一个包含范围在1到Number之间的元素的数组,元素的顺序可以是任意的。如果我们在数组上执行Number-1次操作,操作如下: 我们从数组中选择两个元素A和B 从数组中移除A和B 将A和B的平方和添加到数组中 立即学习“C++免费学习笔记(深入)”; …

    2025年12月17日
    000
  • 使用C++将数组重新排列为最大最小形式

    我们得到一个排序数组。我们需要以最大、最小形式排列这个数组,即第一个元素是最大元素,第二个元素是最小元素,第三个元素是第二个最大元素,第四个元素是第二个最小元素,依此类推,例如 – Input : arr[ ] = { 10, 20, 30, 40, 50, 60 }Output : {…

    2025年12月17日
    000
  • 基数排序的C程序

    排序算法是一种按特定顺序排列列表组件的算法。最常用的顺序是数字顺序和字典顺序。 基数排序是一种非比较排序算法。基数排序算法是未排序列表的首选算法。 它通过最初对相同位值的各个数字进行分组来对元素进行排序。基数排序的思想是按照递增/递减顺序从最低有效数字(LSD)到最高有效数字(MSD)进行逐位排序。…

    2025年12月17日
    000
  • C++程序:按字母顺序重新排列单词的位置

    在这个问题中,一个字符串被作为输入,我们必须按字典顺序对字符串中出现的单词进行排序。为此,我们为字符串中的每个单词(之间用空格区分)分配一个从 1 开始的索引,并以排序索引的形式获得输出。 String = {“Hello”, “World”}“Hello” = 1“World” = 2 由于输入字…

    2025年12月17日
    000
  • 在C/C++中,4维数组

    一个4维数组是由3维数组组成的数组。 算法 Begin. Declare the variables. Declare the array elements. Take the no of elements as input. Take the elements as input. Print th…

    2025年12月17日
    000
  • 在C程序中,从给定的数组中打印下三角矩阵模式

    给定一个 n x n 的矩阵,任务是以下三角形式打印出该矩阵。 下三角矩阵是一个矩阵,其主对角线以下的元素包括主对角线元素,其余元素均为零。 我们通过以下图示来理解: 上述绿色元素是主对角线以下的元素,红色元素是主对角线以上的元素,它们被设为零。 示例 Input: matrix[3][3] = {…

    2025年12月17日
    000

发表回复

登录后才能评论
关注微信