首页
学习
活动
专区
工具
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那时候,难度系数取决于PHPif…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基本上是一样

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

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

    46420

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

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

    69760

    新萌学Python之 冒泡算法排序

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

    54100

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

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

    57910

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

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

    70430

    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: 好啦,基于此,那我们要怎么去改进冒泡排序呢?

    51540

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

    为什么连最简单冒泡排序都理解不了,是不是选错专业了,很多人会有这样疑问,然后就有人做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.为什么插入排序冒泡排序更受欢迎?

    85271

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

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

    36920

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

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

    33620

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

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

    71050

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

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

    68030

    Java基础笔记13

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

    41250

    阶段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

    23030

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

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

    65630

    漫画:“排序算法” 大总结

    冒泡排序: 漫画:什么是冒泡排序? 选择排序: 漫画:什么是选择排序? 插入排序: 漫画:什么是插入排序? 此外还有冒泡排序变种,鸡尾酒排序: 漫画:什么是鸡尾酒排序?...比如下面这个数组,只有7和8是逆序: 如果原始数组大部分元素无序,则需要较多比较交换次数。比如下面这个数组,绝大部分元素都是无序: 在此基础上,插入排序性能略高于冒泡排序为什么这么说呢?...因为冒泡排序每两个元素之间交换是彼此独立,比如A和B交换,B和C交换,C和D交换: 而插入排序元素交换是连续,比如把B赋值给A,把C赋值给B,把D赋值给C,最后把A赋值给D: 显然,归并排序连续交换方式省去了许多无谓交换操作...而归并排序和堆排序时间复杂度稳定在O(nlogn)。 至于平均时间复杂度,虽然三者同样都是O(nlogn),但是堆排序比前两者性能略低一些。为什么呢?主要是由于二叉堆父子节点在内存并不连续。...睡眠排序 猴子排序排序 漫画:三种 “奇葩” 排序算法 这三种排序算法体现出了发明者天马行空想象力,大家可以拿来娱乐一下,但是在现实工作如有排序需求,可千万不要调用它们啊!

    60310
    领券