谁能讲一下冒泡排序原理?

2022-10-01 00:05

谁能讲一下冒泡排序原理?
2个回答
『简单的来说(不高兴长篇大论了)

『就是两两比较,小的靠右

『从前往后,从后往前

『重复N次后就排好序了。。。(就像冒气泡一样将小数“冒”上来,故曰冒泡法)

冒泡排序算法的原理如下:

1.比较相邻的元素。如果第一个比第二个大,就交换他们两个。

2.对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。

3.针对所有的元素重复以上的步骤,除了最后一个。

4.持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

拓展资料:

1,冒泡排序:

是一种计算机科学领域的较简单的排序算法。

它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。

这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端,故名“冒泡排序”。

2.算法稳定性

冒泡排序就是把小的元素往前调或者把大的元素往后调。比较是相邻的两个元素比较,交换也发生在这两个元素之间。所以,如果两个元素相等,我想你是不会再无聊地把他们俩交换一下的;如果两个相等的元素没有相邻,那么即使通过前面的两两交换把两个相邻起来,这时候也不会交换,所以相同元素的前后顺序并没有改变,所以冒泡排序是一种稳定排序算法。

相关问答
什么叫冒泡排序
5个回答2022-09-26 22:07
举个例子: 比如说有一组数组:1,6,3,9,7,4 想要给它做排序,把这个数组从小到大的排列 这里就可以使用冒泡算法(就像河里的泡向上冒,小的泡会在大的泡的上面一样) 这里冒泡排序就是小的数字一个...
全文
冒泡排序
1个回答2023-08-09 09:10
要看你的冒泡法是升序还是降序,不过大体都是一样的,主要就是那两个for循环那里的问题。我这里用的降序: #include void main() { int n[10]; int i,...
全文
冒泡排序法是如何排序的?
2个回答2022-10-13 06:37
其实很简单,就是一个一个进行对比如果ab就把两个变量进行交换,使得最大/最小的排在前面。 2 4 3 5 1 五个数 21 不交换 43521 然后最小的1就一定会在最后 然后比较前4个数,4>3,3...
全文
冒泡排序法
1个回答2022-07-27 23:50
用冒泡排序法对n个关键码排序,在最好的情况下也就是数据按关键码排序次序有序,只需要依次从头到尾挨个比较就可以了,因此比较次数为n-1次,关键码不移动,所以0次移动 在最坏的情况下为关键码按排序顺序完全...
全文
冒泡排序法是什么
1个回答2023-08-09 09:10
冒泡排序,是指计算机的一种排序方法,它的时间复杂度为O(n^2),虽然不及堆排序、快速排序的O(nlogn,底数为2),但是有两个优点:1.“编程复杂度”很低,很容易写出代码;2.具有稳定性,这里的稳...
全文
什么叫冒泡排序法
2个回答2023-01-24 10:50
冒泡排序,是指计算机的一种排序方法,它的时间复杂度为O(n^2),虽然不及堆排序、快速排序的O(nlogn,底数为2),但是有两个优点:1.“编程复杂度”很低,很容易写出代码;2.具有稳定性,这里的稳...
全文
什么叫做冒泡排序?
1个回答2022-09-30 22:22
冒泡排序★★★★★★ #include #define N 5 void main() { int i,j; int grade[N],temp; printf("输入5个数\n"); ...
全文
“冒泡排序法”是什么?
2个回答2022-10-04 10:21
冒泡排序详细注释: /* 用冒泡排序法对一维整型数组中的十个数升序排序 */ #include #include int main() { int i,j,t,a[10]; printf...
全文
冒泡排序代码?
1个回答2023-01-05 06:41
for(int i =0;i < score.length - 1;i++) { for(int j = 0;j < score.length - 1-i;j++)// j开始等于0, { if(s...
全文
冒泡排序算法
1个回答2022-09-17 16:40
冒泡排序,是指计算机的一种排序方法,它的时间复杂度为O(n^2),虽然不及堆排序、快速排序的O(nlogn,底数为2),但是有两个优点:1.“编程复杂度”很低,很容易写出代码;2.具有稳定性,这里的稳...
全文