c语言一维数组冒泡排序

冒泡排序,这个东西很简单。
只要一一比较,然后将较大的放在背面即可。
老实说,我第一次做的时候很困惑。

稳定排序是什么意思?它们是相等的值。
最初处于领先地位的人在计数后仍将保持领先地位。
气泡类型不会替换等量元素,因此是稳定的。
例如,如果1 和1 之间存在匹配,那么无论前面是谁,它们都不会改变,它们将保持不变。

原理其实就一句话:比较两个相邻数字时,将较大的数字移到后面。
因此,当第一次比较第一和第二数字时,较小的数字位于前面,较大的数字位于后面。
然后比较第二个和第三个数字,依此类推,直到倒数第二个数字。
旅程结束后,最大的旅程肯定就结束了。

那么第二次旅行并不比上次更好,因为它被决定是最大的。
第三次飞行并不比前两次好,倒数第二次飞行也是确定的。
就这样来来回回,每比赛一次,就少一场比赛。

看,如果总共有 N 个数字,则需要 N-1 趟。
行程 i 与 (N-i) 次进行比较。
因此,采用两层循环,外层控制pass的次数,内层控制每次pass比较的次数。

有什么优点?这意味着我们每次都可以找到最大的一个并将其放在那里。
下次旅行时不要管它。
例如,第一遍之后,最后一个数是最大的,第二遍就不需要比较最后一个数了。
经过这次旅行,比较的次数就会少一些。

如何计算时间复杂度?最好的情况是数组已经排列好,例如为了。
然后一趟就完成比较。
最小比较次数为N-1 ,移动次数为0。
此时最好的复杂度为O(n)。

最坏的情况是顺序相反,例如 5 ,4 ,3 ,2 ,1 那么就要比较N-1 次,每次比较N-i次。
此时,比对和出招的次数已经达到了最大。
所以最坏的复杂度是 O(n^2 )。

平均起来也是O(n^2 )。
不管数据是什么,平均复杂度就是这样。

看这个符号:
C voidBubbleSort(int a[], int len){ int i,j,温度; l(j=0; j a[i+1 ]){ 温度=a[i]; a[i] = a[i+1 ]; a[i+1 ] = 温度; } }
j 控制在遍数中,i 控制每个遍比较的次数。
如果a[i]大于a[i+1 ],则切换。
来来回回,直到一切安排妥当。

一维数组有几个元素怎么表示?

从广义上讲,数组就像一排盒子,每个盒子容纳一个对象。
例如a[3 ][4 ]是一个3 行4 列的盒子,总共1 2 个盒子。
行从0到2 ,列从0到3 ,就像你从1 到3 数行,每行有1 到4 个框。
这个框a[0][4 ]是越界的,就像你到第4 个框一样,但只有3 行,它是越界了。

数组定义很简单,如inta[1 0];这是一个包含 1 0 个整数的盒子。
使用a[9 ]获取第1 0个框中的项目,第一个是a[0]。

还有,排序就像对盒子进行排序,冒泡排序就像一个一个比较,选择排序就像挑出最小的一个然后放回去,插入排序就像将最小的盒子插入到正确的位置,而快速排序就像将盒子分成两侧并分别排序。

你可以自己看看。
这些方法中的每一种都有其自身的特点。
哪一种最合适取决于具体情况。

什么是冒泡排序法?能说具体点吗?

嘿嘿,给大家讲一下我当年遇到的冒泡排序问题。

2 01 4 年我刚刚进入Java开发行业,我的老师是一位即将退休的老人。
他教我如何编写代码,最重要的是,他喜欢和我谈论各种排序算法。

有一次,他给我带来了一张小纸,上面画了一个气泡订购图。
他说:“你看,这叫冒泡排序,就像洗衣服一样,一层层冒泡。

他指着纸条上的例子:“你看,第一步,如果1 比2 小,1 就小,所以放在前面,然后2 比3 小,2 就小,又放在前面……之后,较大的数就冒泡到最后。

那一刻我很困惑,心想:“这和洗衣服一样,这和衣服有什么关系?”
大师说:“你不明白,这叫打比方。
你想想,你妈妈先把重的衣服放进去,轻的衣服慢慢拿出来。

他还给我举了一个例子。
当时需要整理一批用户信息,大约有2 000条数据。
我是用冒泡排序来写的。

结果是什么?奔波了一夜,第二天早上去上班,旧服务器还亮着灯。
我一看,哦,CPU满了,内存都快爆了。
经过一夜的跑步,我整理了2 000个数据点。

大师走过来一看,拍了拍我的肩膀:“你看,这就是冒泡排序的缺陷,一旦数据太多,就变得极其慢。

他还说:“我刚开始的时候也用这个,后来发现数据太多了,没法用了。
后来学的快速排序和融合排序才叫快。

后来我才知道,确实是这样。
冒泡排序的时间复杂度为O(n^2 ),当数据太多时会变得非常慢。
对于 2 ,000 个数据点,使用冒泡排序可能需要几个小时。

所以,在我们当前的项目中,我们使用更高效的算法进行排序。
仅当数据很少时,例如只有几个数据点,才会偶尔使用冒泡排序。
该方案简单直观。

不过,尽管冒泡排序很慢,但它是入门排序算法中最简单的,而且很容易理解。
我的老师用它来教我如何开始。

看,这是冒泡排序。
简单,但如果使用太多就会很烦人。