首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么我的冒泡排序不能在C中工作

冒泡排序是一种简单但低效的排序算法,它通过不断比较相邻的元素并交换位置来实现排序。在C语言中,冒泡排序可以通过以下代码实现:

代码语言:txt
复制
#include <stdio.h>

void bubbleSort(int arr[], int n) {
    int i, j;
    for (i = 0; i < n-1; i++) {
        for (j = 0; j < n-i-1; j++) {
            if (arr[j] > arr[j+1]) {
                int temp = arr[j];
                arr[j] = arr[j+1];
                arr[j+1] = temp;
            }
        }
    }
}

int main() {
    int arr[] = {64, 34, 25, 12, 22, 11, 90};
    int n = sizeof(arr)/sizeof(arr[0]);
    bubbleSort(arr, n);
    printf("Sorted array: \n");
    for (int i=0; i < n; i++)
        printf("%d ", arr[i]);
    return 0;
}

如果你的冒泡排序不能在C中工作,可能有以下几个原因:

  1. 代码错误:请检查你的代码是否有语法错误、逻辑错误或者拼写错误。确保你正确地声明和使用变量,并且循环和条件语句的逻辑正确。
  2. 输入数据问题:冒泡排序对于不同的输入数据可能会有不同的表现。请确保你的输入数据是正确的,并且包含足够的测试用例来验证你的排序算法。
  3. 内存溢出:如果你的输入数据量非常大,可能会导致内存溢出。请确保你的代码在处理大量数据时没有内存泄漏或者越界访问的问题。
  4. 硬件或环境问题:如果你的代码在其他环境中可以正常工作,但在特定的环境中无法工作,可能是由于硬件或环境限制导致的。请确保你的代码在不同的环境中都能正常运行。

总结起来,冒泡排序在C语言中是可以正常工作的,但如果你遇到问题,建议仔细检查代码、输入数据和环境,以确定问题的根源。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

不找C++的工作,为什么要学习C++?

许多学编程的认为,特别是新手会觉得:“我又不找c语言的工作,需不需要学c语言?”...,就象“我又不找C语言的工作,应不应该学c++”一样;我觉得答案不源于你做不做C++的工作,而取决于你做不做程序编程行业的工作。 事理非常简单,打个比方当你听见这样的话,估测你也知道为啥了。...为啥是C++? c++贴近底层,它细节描写繁杂,难度系数大,阐释的是面向过程编程思想,无法用在实际中客户体验度优良的项目开发设计。...学C++的实际意义主要表现在哪儿? 或许好的C++编程开发人员,找个高薪工作是做的到的。这算作用之一。这又是许多人为什么挑选语言编程的原因。其实我很想问,假如编程并不是高薪职位,还会有几个去学?...例如学PHP的那时候,难度系数不取决于PHP的if…else…那些语法,而取决于例如PHP的面向对象,PHP的接口,数据库的优化,服务器的负载均衡,集群技术,网络编程等等。

2.2K40

为什么我的数据不按顺序排序原来如此 | Java Debug 笔记

我的接口返回的数据顺序总是不固定问题描述====我在开发突发奇想。将表头信息也给查出来一并返回给前端了。但是正因为这一举动却带来嘲讽。...结果很明显我们写入的顺序是a、d、b、c、e 但是显示出来的顺序缺失a、b、c、d、e 。后来网上翻阅了一下资料说HashMap 是不会按照写入顺序排序的。...问题分析====下面我们向HashMap 中添加如下元素 。然后当我们map进行输出的时候是先横向遍历。当遇到有纵向数据是在纵向遍历。...感觉有点排序的感觉当时为了解决问题就决定尝试一把。结果是完美的。bug解决收工回家。对应刚入行的我还是很有成就感的。时隔多年现在又重新收拾了下自己的bug。...决定一探究竟为什么LinkedHashMap 可以实现按照写入顺序排序。通过结构图我们清楚看到他是HashMap的子类。所以他的存储结构和HashMap基本上是一样的。

31510
  • 为什么从乙方出来的技术人,能在工作中 ‘更猛,更持久’?

    即便你个人的影响力达到极高的程度,或许也无法在与 “独角兽” 争夺人才的战斗中讨得便宜。 该采取什么样的应对措施呢? “拥抱现实,应对现实” ,这是《原则》中让我记忆较为深刻的一句话。...签完合同后,基本上你和你签合同的单位是没有任何交集的,他们只负责每个月给你发工资。 为什么 “更猛,更持久” ? 不可否认,有许多企业排斥从 “乙方公司” 出来的小伙伴,甚至根本不看类似的简历。...只有你自己的公司才能给你归属感。 可是你却永远不在自己的公司工作,又怎么可能有归属感呢?...这时候,也许你就要再重新考虑住处和交通了,因此换工作的可能性会非常大。...总结 在面试中,我的确遇见过不少从 “乙方公司” 出来的优秀小伙伴,他们别无他求,只希望能够拥有 “归属感”、“稳定的环境” 及 “不错的氛围”,或许只有这样,他们才能重新认识自我,重新理解自己面对命运的选择

    47220

    【我的漫漫跨考路】有生之年·调完了BUG--冒泡排序C++版本

    正文之前 今天去牛客网试了试一些实战编程题,感觉贼有意思,但是也很难,挑了个成绩排序的算法题我就开始怼! 对我一个编程经验并不是很丰富的人来说,确实算是个挑战了。...所以我满满当当的搞了四个小时多,才算是把牛客的这个题目给解答了。而且还是残缺版本,因为我没用指针,所以估计时间或者是内存抄了。最后牛客给我的回答是我的不合格 ~~~~心痛!!...(╯‵□′)╯︵┻━┻ 正文 以后我的正文尽力简洁(好吧,我承认是我懒得打字了。...所以就直接发代码吖a~~~~) 题目描述 查找和排序 题目:输入任意(用户,成绩)序列,可以获得成绩从高到低或从低到高的排列,相同成绩都按先录入排列在前的规则处理。...我赶时间,自行领悟呀,我赶时间! 此中有真意~~~欲辨已忘言····” 忍不住还是秀一下我的工作界面,爽歪歪~~~ ?

    70560

    新萌学Python之 冒泡算法排序

    忆往昔,我在初入it江湖时,头一次interview时被问一个问题就是冒泡算法排序手写,一开始是懵的,为什么呢,因为刚从学校毕业,实习期面试,因为本科学的是信息管理,半路出家,对编程产生兴趣...... .. .跑题了,为什么决定开始写一些学习中的记录呢,以后老了,给孙子吹啊!...调用既可,直接原列表排序,不返还新列表; sorted()是python内置的全局方法来对可迭代的序列排序生成新的序列.即需要参数接收....图2.2 是对图2.1 中的代码进行优化,添加的功能是使排序正反都进行一遍在一次外循环中,这样是不是就提高了工作效率了哈!         我们还可以试试下面 图3 demo....又称鸡尾酒排序(双向冒泡算法) 让排序一次循环,可以相对左右各排一次,相对基础的冒泡算法来说,对于大量数据的排序来说,可以节省了时间,虽然我两次程序执行时间都是0.1s, 毕竟是小数据嘛!!!

    54600

    java笔试题_一道简单的 Java 笔试题,但值得很多人反思

    一开始我想,考一个排序算了。但是转念一想,这也太不负责任了。对面要是背一道冒泡排序的解法上来,达不到考察技术水平的目的,Boss也不会认可。...本着“放水不能太明显”的原则,我想考插入排序,并且把题目弄得没多少人见过。 排序是一类基本算法,合格的程序员至少会一种。大多数人都只会入门级的冒泡排序,而我更喜欢插入排序,原因……你会明白的。...在面试过程中,我甚至常常亲自解释插入排序是怎么回事——放水到这个份上,我都不忍心再退步了。 真正的考察点 这是一份Android平台的开发工作,Boss要求的是能干活、干好活。...学习能力、求知欲,是作为一个程序员的基本素养。因为,大部分人的工作,类似于在一堆按钮中,找到合适的那个按下去;而程序员的工作,往往是闭着眼睛这么干。...(大家有兴趣可以想想为什么这是一个改进。当然,一定还有更好的方案。) (我没有在提示列表中给出迭代器,结果自己也被晃过去了。)

    60110

    算法分类 ,时间复杂度 ,空间复杂度,优

    前言: 算法的复杂度分为时间复杂度与空间复杂度,时间复杂度指执行算法需要需要的计算工作量,空间复杂度值执行算法需要的内存量,可能在运行一些小数据的时候,大家体会不到算法的时间与空间带来的体验....,这些都是新手入门必须要了解的,你可以不会,但是你必须要知道他是怎么做到的,原理是什么,今天就给大家讲一讲我们常用的冒泡排序,选择排序,这两个排序算法, 1,冒泡排序(Bubble Sort), 为什么叫他冒泡排序呢...好了该上代码了,下面就是冒泡排序的代码,冒泡相对于其他的排序算法来说,比较的简单,比较好理解,运算起来也是比较迅速的,比较稳定,在工作中也会经常用到,推荐使用 # 冒泡排序 def bubble_sort...,然后第三大,依次排序, 依次类,直到排完,     选择排序的优点是数据移动, 在排序中,每个元素交换时,至少有一个元素移动,因此N个元素进行排序,就会移动 1--N 次,在所有依靠移动元素来排序的算法中...O(n*m)     ,因为变量的内存是自动分配的,第一个的定义是循环里面的,所以是n*O(1)   ,如果第二个循环在外边,那么就是1*O(1)     ,这里也只是一个了解性的东西,如果你的工作中很少用到

    71530

    好用的库函数,qsort函数大详解(干货满满!)(初阶)

    前言; 我一直在思考今天要写什么类型的文章,看到之前写的冒泡排序的写法,不过冒牌排序的算法只能针对于整型,我们如果想要排序浮点型,字符型的数据呢?...这个时候我突然想到了比冒泡排序还好用的一个库函数,就是我们今天的主角——qsort函数,下面不多废话,直接进入正文: 正文: 1.qsort函数 1.1qosrt函数是什么 qosort函数其实是一个基于快速排序算法...(c > 0) return 1; //这里返回的值是不固定的,只要是大于0的就好 else if (c < 0) return -1; //这里也是不固定的 else return...,qsort库函数的代码更短一点,可能很多读者朋友会这么想:那么我们为什么不直接去学qsort函数而去学冒泡排序呢?...我们可以在平常的场景中应用他,但也不要忘记冒泡排序如何去写,我们要透过现象看本质 ,明白它背后的逻辑,懂得此代码为什么去写!

    20110

    python用冒泡法排序_数组冒泡排序c语言函数

    arr = [ 7 , 4 , 3 , 67 , 34 , 1 , 8 ] . def bubble_sort : 最近在学习Python,下面是我的一些笔记 冒泡排序 实现思路: 使用双重for...python中怎样实现冒泡排序 array = [1,18,3,7,2,4] for i in range(len(array))[::1]: for j in range(i): if array[j...python冒泡排序法求告知哪里错了_(:з」∠)_ 恩…Python小新人刚学到冒泡排序那里..回家试了一下不知道为什么就是不对求告知哪里错了,还有最后的None请问是啥..怎么去掉谢谢!!...… 恩…Python小新人刚学到冒泡排序那里.. 回家试了一下不知道为什么就是不对 求告知哪里错了,还有最后的None请问是啥..怎么去掉 谢谢!!  冒泡排序算法的运作如下: 1....,其中list_sort_new()中使用了指派运算, 就相当于c语言的i++。

    1.1K10

    【C语言】带你玩转数组(全程高能)

    ✅ 二维数组⭐️ 二维数组的创建 初始化 使用 在内存中的存储 数组作为函数参数⭐️ 错误的冒泡排序 数组名 正确的冒泡排序 结束语 ---- 前言 Hello,大家好啊,我们又见面了,如果你还在为C语言的数组而苦恼...❤️请允许我在这里㊗️广大一线工作者们、各行 各业劳动者们,以及大家劳动节快乐!...原因在于:数组创建,在C99标准之前, [] 中要给一个常量才可以,不能使用变量。在C99标准支持了变长数 组的概念。这也说明了,当前编译器VS2019不属于C99标准。...: 冒泡排序: 比较相邻的元素。...所以说&arr取的是整个数组的地址!! 好啦,基于以上的知识,我们回头看看我们刚开始的代码,通过一张图,给你指出为什么sz是1: 好啦,基于此,那我们要怎么去改进冒泡排序呢?

    53640

    十大经典排序算法(代码实现),建议收藏

    为什么我连最简单的冒泡排序都理解不了,我是不是不选错专业了,很多人会有这样的疑问,然后就有人做gif冒泡懵逼排序,别说,还挺形象的。...在这里我列举了7中常见的排序算法并用C语言实现,你们可能就要问了,不是十种吗?...怎么还能缺斤短两,不是我不会写啊,是写起来麻烦,你们也用不到后面那几种,跟别说去研究了,能看懂常见的七种排序算法你就能在学校里横着走了。...目录 一、冒泡排序 二、选择排序 三、插入排序 四、快速排序 五、希尔排序 六、归并排序 七、桶(基数)排序 01 冒泡排序 相信大家最熟悉的就是冒泡排序了,这个我就不多说 直接上动图演示原理,外加代码实现冒泡排序...} } } } 03 插入排序 插入排序的代码实现虽然没有冒泡排序和选择排序那么简单粗暴,但它的原理应该是最容易理解的,就是将未排序的数字插入到已排序的数列中。

    1.8K30

    为什么插入排序比冒泡排序更受欢迎?

    插入排序和冒泡排序的时间复杂度 插入排序和冒泡排序的时间复杂度相同,都是 O(n2),在实际的软件开发里,为什么我们更倾向于使用插入排序算法而不是冒泡排序算法呢? 2....为什么要考察排序算法的稳定性呢? 比如说,我们现在要给电商交易系统中的“订单”排序。订单有两个属性,一个是下单时间,另一个是订单金额。...一次冒泡会让至少一个元素移动到它应该在的位置,重复 n 次,就完成了 n 个数据的排序工作。 我们要对一组数据 4,5,6,3,2,1,从小到大进行排序。...我这里还有另外一个例子,这里面给 6 个元素排序,只需要 4 次冒泡操作就可以了。 ? 具体代码如下所示: ?...插入排序的时间复杂度最好就是有序的所以是O(n),而最坏就是反序的就是O(n2)。 4.为什么插入排序比冒泡排序更受欢迎?

    87671

    AI_第一部分 数据结构与算法(10.排序简介)

    第四阶段我们进行深度学习(AI),本部分(第一部分)主要是对底层的数据结构与算法部分进行详尽的讲解,通过本部分的学习主要达到以下两方面的效果: 1.对开发中常见的算法能应用自如,让你在跳槽找工作中“算法题...今天我们聊聊排序,说起排序,对于工科的同学来说呢,首先想到的就是冒泡排序,哈哈我也是滴,记得上学学c语言的时候就学了那个冒泡排序,之前面试的时候也是让手写过冒泡排序。今天我们从大的概念来聊聊排序。...、平均情况下时间复杂度 为什么要区分这三个时间复杂度呢?...但是在实际开发环境中,我们排序的可能只有100个、1000个这样的数据规模,所以对于同阶时间复杂度的排序算法性能对比的时候,我们也是需要把系数、常数、低阶都要考虑进去。...第三、排序算法的内存消耗 算法的内存消耗可以通过空间复杂度来衡量,排序算法也是不例外的,不过针对于排序算法的空间复杂度,我们引入一个概念:原地排序(sorted in place),原地排序算法

    38020

    排序算法-上(Java语言实现)

    我只讲众多排序算法中的一小撮,也是最经典的、最常用的:冒泡排序、插入排序、选择排序、归并排序、快速排序、计数排序、基数排序、桶排序。...思考题:插入排序和冒泡排序的时间复杂度相同,都是 image.png ,在实际的软件开发里,为什么我们更倾向于使用插入排序算法而不是冒泡排序算法呢? 如何分析一个“排序算法”?...一次冒泡会让至少一个元素移动到它应该在的位置,重复 n 次,就完成了 n 个数据的排序工作。 我用一个例子,带你看下冒泡排序的整个过程。我们要对一组数据 4,5,6,3,2,1,从小到大进行排序。...这个问题我着重来说一下。答案是否定的,选择排序是一种不稳定的排序算法。从我前面画的那张图中,你可以看出来,选择排序每次都要找剩余未排序元素中的最小值,并和前面的元素交换位置,这样破坏了稳定性。...解答开篇 基本的知识都讲完了,我们来看开篇的问题:冒泡排序和插入排序的时间复杂度都是 O(n2),都是原地排序算法,为什么插入排序要比冒泡排序更受欢迎呢?

    35220

    基础算法| 常用排序算法小结

    刺不刺激?高不高能?...想小编当年入门的时候,就是仰仗着冒泡大法,从此踏入红尘,一去不返……呃这个扯远了,为什么叫冒泡呢?这个后面再解释。...2)取出下一个元素(比如A[1]),在已排序列中从右往左扫描,如果已排序列中的元素大于取出的元素,那么就将该元素(已排序列中的)往后挪一个位置。 3)直到在已排序列中找到一个小于等于取出元素的元素。...值得一提的是,由于数据划分为多个区域,在每个区域中,相同的元素可能在各自的插入排序中移动,最后其稳定性就会被打乱。因此希尔排序是不稳定的排序。...归并排序是稳定的算法。 6 快速排序(Quick Sort) 1 1 终于说到这个大boss了。为什么叫快速排序呢?额,这个倒不是因为它很快。 快速排序由C. A. R. Hoare在1962年提出。

    72350

    【整理】待毕业.Net码农就业求职储备

    下图是一个经典的冒泡排序过程图,可以看出,在排序过程中,大的记录像石头一样“沉底”,小的记录逐渐向上“浮动”,冒泡排序的名字也由此而来。 ?   ...因为如果在一趟排序中没有发生元素交换,那么数组中的数据都已经有序了,这时就无需再继续比较了,这也是冒泡排序算法结束的条件。   ...(5)复杂度分析   ①时间复杂度   若待排序文件的初始状态是正序的,一趟扫描即可完成排序(这里也解释了我们为什么刚刚在代码中设置一个flag标志)。...所需的关键字比较次数C和记录移动次数M均达到最小值: ? , ? 。所以,冒泡排序最好的时间复杂度为 ? 。   若待排序文件是反序的,需要进行 n - 1 趟排序。...其实,我个人是不建议也不喜欢刷面试题的,上面这些内容我也只看了一点,不过将一少部分面试题作为复习验收检测以查漏补缺还是有一定益处的。

    68930

    Java基础笔记13

    冒泡排序 相邻元素两两比较,大的往后放,第一次完毕,最大值出现在了最大索引处 13.13_常见对象(数组高级冒泡排序代码实现) A:案例演示 数组高级冒泡排序代码 13.14_常见对象...因为如果你排序了,但是你排序的时候已经改变了我最原始的元素索引。 13.18_常见对象(Arrays类的概述和方法使用) A:Arrays类概述 针对数组进行操作的工具类。...) A:为什么会有基本类型包装类 将基本数据类型封装成对象的好处在于可以在对象中定义更多的功能方法操作该数据。...) A:Integer类概述 通过JDK提供的API,查看Integer类的说明 Integer 类在对象中包装了一个基本类型 int 的值, 该类提供了多个方法,能在 int 类型和 String...; 要求对字符串中的int数排序,最后在转换成字符串 split(" ")切割

    42350

    阶段01Java基础day13常见对象02

    理论值(不掌握) public int length():返回长度(字符数)。...冒泡排序 相邻元素两两比较,大的往后放,第一次完毕,最大值出现在了最大索引处 13.13_常见对象(数组高级冒泡排序代码实现) A:案例演示 数组高级冒泡排序代码 13.14_常见对象...因为如果你排序了,但是你排序的时候已经改变了我最原始的元素索引。 13.18_常见对象(Arrays类的概述和方法使用) A:Arrays类概述 针对数组进行操作的工具类。...) A:为什么会有基本类型包装类 将基本数据类型封装成对象的好处在于可以在对象中定义更多的功能方法操作该数据。...) A:Integer类概述 通过JDK提供的API,查看Integer类的说明 Integer 类在对象中包装了一个基本类型 int 的值, 该类提供了多个方法,能在 int 类型和 String

    23430

    动态可视化十大排序算法之冒泡排序

    提到排序算法呀,我想你肯定不陌生。这应该是学习编程时学到的第一个算法了吧。 我现在还能记得自己当时在 VC++ 6.0 上按照谭浩强老师的 C 语言教材敲出第一个冒泡排序时的激动心情。...当时我就想着要是有一个算法执行过程的动态图那就好了。我一直也在这样尝试着这样做,今天我就带你来体验下冒泡排序算法的动态执行过程。 话不多说,直接上干货,先带你看下效果,包你满意。...可能有人觉得现在不需要自己手动写排序算法了,用的时候直接调用编程语言内置的库函数就行了。 在日常的工作学习中,我觉得大部分人也就是这样做的,包括我自己在内。...如何评价一个排序算法? 通过上面的程序,我们就实现了冒泡排序算法,那么如何评价一个排序算法呢?我想这个你在学习数据结构与算法的时候一定都学过。...总结 冒泡排序是一种时间复杂度较高的排序算法,所以呢大部分时候都是在教科书中出现,在实际的项目或者使用过程中很少有它的身影。

    69130
    领券