递归冒泡排序的C程序

递归冒泡排序的c程序

冒泡排序是最简单的排序算法之一,用于通过比较相邻元素对数据进行排序。所有元素都分阶段进行比较。第一阶段将最大值放在最后,第二阶段将第二大元素放在倒数第二个位置,依此类推,直到完整列表排序完毕。

冒泡排序算法

int arr[5]= { 5,4,2,1,3 };

int i, j ;

从索引 i=0 遍历到 i

从索引 j=0 遍历到数组size – i – 1

如果 arr[i]>arr[j] 将 arr[i] 与 arr[j] 交换

结束

递归冒泡排序

如果数组length 为 1 则返回

遍历数组一次,固定最大元素在末尾​​p>

其余部分递归执行步骤 2除最后一个元素之外的数组

示例

输入 − Arr[] = { 5,7,2,3, 1,4}; length=6

输出 − 排序数组:1 2 3 4 5 7

说明 

First Pass5 7 2 3 1 4 → swap → 5 2 7 3 1 45 2 7 3 1 4 → swap → 5 2 3 7 1 45 2 3 7 1 4 → swap → 5 2 3 1 7 45 2 3 1 7 4 → swap → 5 2 3 1 4 7Second Pass5 2 3 1 4 7 → swap → 2 5 3 1 4 72 5 3 1 4 7 → swap → 2 3 5 1 4 72 3 5 1 4 7 → swap → 2 3 1 5 4 72 3 1 5 4 7 → swap → 2 3 1 4 5 7Third Pass2 3 1 4 5 7 → swap → 2 1 3 4 5 72 1 3 4 5 7 no swapFourth Pass2 1 3 4 5 7 → swap → 1 2 3 4 5 71 2 3 4 5 7 no swap in further iterations

输入− Arr[] = { 1, 2, 3, 3, 2 };

输出− 排序数组:1 2 2 3 3

说明

First Pass1 2 3 3 2 → swap → 1 2 3 2 31 2 3 2 3 → swap → 1 2 2 3 31 2 2 3 3 no swap in further iterationsSecond Pass1 2 2 3 3 no swap in further iterations

下面程序中使用的方法如下

在冒泡排序的递归方法中,基本情况是数组长度= 1。否则使用单个for循环遍历数组并相应地交换元素。

将输入数组 Arr[] 和长度作为其中元素的数量。

函数 recurbublSort(int arr[], int len) 获取数组及其长度,并使用冒泡排序对数组进行递归排序。

获取变量 temp。

如果数组长度为 1,则返回 void。

否则使用单个 for 循环遍历数组,并针对每个元素 arr[i]>arr[i+1 ],交换这些元素。

设置 temp=arr[i]、arr[i]=arr[i+1] 和 arr[i+1]=temp。

现在将长度减 1,因为上一个循环将最大元素放置在最后一个位置。

递归调用recurbublSort(arr,len)。

在所有调用结束时,当 len 变为 1 时,我们将退出递归并对数组进行排序。

在 main 中打印排序后的数组。

示例

#include void recurbublSort(int arr[], int len){   int temp;   if (len == 1){      return;   }   for (int i=0; i arr[i+1]){         temp=arr[i];         arr[i]=arr[i+1];         arr[i+1]=temp;      }   }   len=len-1;   recurbublSort(arr, len);}int main(){   int Arr[] = {21, 34, 20, 31, 78, 43, 66};   int length = sizeof(Arr)/sizeof(Arr[0]);   recurbublSort(Arr, length);   printf("Sorted array : ");   for(int i=0;i<length;i++){      printf("%d ",Arr[i]);   }   return 0;}

输出

如果我们运行上面的代码,它将生成以下输出

Sorted array: 20 21 31 34 43 66 78

以上就是递归冒泡排序的C程序的详细内容,更多请关注创想鸟其它相关文章!

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月17日 22:20:25
下一篇 2025年12月17日 22:20:55

相关推荐

发表回复

登录后才能评论
关注微信