冒泡排序是什么意思?

如题所述

第1个回答  2022-11-22
问题一:什么是冒泡排序法? 冒泡排序(BubbleSort)的基本概念是:依次比较相邻的两个数,将小数放在前面,大数放在后面。即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。至此第一趟结束,将最大的数放到了最后。在第二趟:仍从第一对数开始比较(因为可能由于第2个数和第3个数的交换,使得第1个数不再小于第2个数),将小数放前,大数放后,一直比较到倒数第二个数(倒数第一的位置上已经是最大的),第二趟结束,在倒数第二的位置上得到一个新的最大数(其实在整个数列中是第二大的数)。如此下去,重复以上过程,直至最终完成排序。

问题二:冒泡排列是什么意思? 就是给你一些哗字,然后用算法把他从大到小排序。因为是大的往前一个个的放,就像水里的泡泡一样,故而的名。

问题三:“JAVA写冒泡排序”是什么意思? 10分 按冒泡排序思想,有8颗豆子(大小不一)放在8袋子里,从第1个袋了拿出豆子,与第2个袋子里的豆子相比较,如果第2个袋子里豆处比第1个袋子的豆子大,就把第2个袋子里的豆子放入第1个袋子,把第1个袋子的豆子放入第2个袋子。然后,第1个袋子继续和第3个袋子比较。如果第2袋子的豆子不会比第1个袋子的大,就和第3个袋子比较,这样一一个下直到和所有的袋子比较过。之后第2个袋子也与第2个袋子以后的相比较过.......!
另外还要用到交换的方法:
代码主要是用循环嵌套:
public class NewMain {
public static void main(String[] args) {
TODO code application logic here
int a[]={1,5,8,11,16,30,40,50,199};定义一个数组,也可写成 int[] a={1,5,8,11,16,30,40,50,199};
int c;用于交换用的
for(int i=0;ia[i]){ 进行交换
c=a[j];
a[j]=a[i];
a[i]=c;
}
}
System.out.println(a[i]);
}
}

问题四:冒泡排序法C语言解释 100分 既然要用外行的话来回答,我就打个简单的比喻吧。
【比喻】
假如你是体育老师,你前面有一排随机站立的学生,10个,高矮不一。如果你要用冒泡排序的思路来让他们从低到高来排队,你可以这样。
第一遍:
从左往右,第一个跟第二个比较,高的那么换到右边,接着第2个跟第3个比较,高的再换到右边。这样以此类推,第一遍做完后,你能保证最高的那个被移动到了队列最后。比如说姚*明同学。
第二遍:
如果我是体育老师,姚*明可以去玩手机了(呵呵),因为,第一轮已经能保证他是最高的,且已经站到最后了。那么我只要对前9位同学,把第一遍的动作再做一遍,那么你就可以保证找出第2高的同学,移动到姚*明左边了。一次类推。
【短评】
所谓冒泡,就是模拟池塘里的小气泡。你可以假定小的往上跑的快,大的跑的慢。那么水底到水面上就形成了一串大小不同的泡泡。
【截图注释】
bubble_sort(A)函数名叫冒泡排序,需要传入一个数组A作为参数
{
for( i=1 to N-1)10个人,其实排9轮就好了,最后一轮就一个人不用排
{
haschang=false;用一个逻辑性变量记录排序过程中是否有数据交换,开始为false
for(j=1 to N-i)每一轮要排序的人数是递减的, i是递增,所以每一次内循环N-i递减
{
if(A[j]>A[j+1])如果A的第j个元素比后面那个大,就交换位置
{
temp=A[j];先把A[j]做个备份
A[j]=A[j+1];然后把A[j+1]装到A[j]中
A[j+1]=temp;最后把原来备份的temp 放到A[j+1] 实现交换
haschange=true;发生了数据交换,修改标识。
}
}
}
楼主好运。

问题五:这是冒泡排序法if语句里是什么意思 if(i[y-1]>i[y]){ temp=i[y-1]; i[y-1]=i[y]; i[y]=temp;}这里的if语句的意思是如果数组i中的数字i[y-1]大于i[y],那么这两个数字进行交换,花括号中的三条语句就是交换两个数字的操作。
至于为什么要这么交换两个数字,给你举个例子好了――比如说你有一瓶酱油和一瓶醋,如果你想把这两样东西的瓶子换一下,那么你必然需要借助一个空瓶子(也就是代码里的temp),然后先把酱油(或者醋)倒到空瓶子中去,再把醋倒到空了的酱油瓶中去,最后把空瓶子里的酱油倒到醋瓶子去,经过这三步你才完成了交换。那么这段代码就可以理解为:
if(i[y-1]>i[y]){ temp=i[y-1]; 将i[y-1](酱油)放到空瓶子temp中 i[y-1]=i[y]; 将i[y](醋)放到i[y]中 i[y]=temp; 将空瓶子里的i[y-1]放到i[y]中}

问题六:冒泡排序和快速排序有什么区别 冒泡排序是从最底层元素开始比较,(与其上的元素比较)
小于就往上再比,大于就交换,再用较小的往上比较,直到最高层,
第一次把最小的放到最上层,第二次把第二小的放到第二层,以次类推;
快速排序是先找到一个轴值,比较时把所有比轴值小的放到轴值的左边,
比轴值大的放到右边,再在两边各自选取轴值再按前面排序,直到完成.
纯手工操作,希望能够帮到你,谢谢采纳!!!

问题七:起泡排序和冒泡排序是不是一个概念 C实现冒泡排序算法
最简单的排序方法是冒泡排序方法。   这种方法的基本思阀是,将待排序的元素看作是竖着排列的“气泡”,较小的元素比较轻,从而要往上浮。   在冒泡排序算法中我们要对这个“气泡”序列处理若干遍。所谓一遍处理,就是自底向上检查一遍这个序列,并时刻注意两个相邻的元素的顺序是否正确。如果发现两个相邻元素的顺序不对,即“轻”的元素在下面,就交换它们的位置。显然,处理一遍之后,“最轻”的元素就浮到了最高位置;处理二遍之后,“次轻”的元素就浮到了次高位置。在作第二遍处理时,由于最高位置上的元素已是“最轻”元素,所以不必检查。一般地,第i遍处理时,不必检查第i高位置以上的元素,因为经过前面i-1遍的处理,它们已正确地排好序。 这个算法可实现如下。
C语言程序:(TC 2.0通过) void doit(float* in,int count) { int x; int y; float temp; for(y=0;y(*(in+x-1))) { temp=(*(in+x-1)); (*(in+x-1))=(*(in+x)); (*(in+x))=temp; } } } }

问题八:冒泡排序的中心思想 冒泡排序(BubbleSort)的基本鼎念是:依次比较相邻的两个数,将小数放在前面,大数放在后面。即首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。重复以上过程,仍从第一对数开始比较(因为可能由于第2个数和第3个数的交换,使得第1个数不再大于第2个数),将小数放前,大数放后,一直比较到最小数前的一对相邻数,将小数放前,大数放后,第二趟结束,在倒数第二个数中得到一个新的最小数。如此下去,直至最终完成排序。
由于在排序过程中总是小数往前放,大数往后放,相当于气泡往上升,所以称作冒泡排序。
用二重循环实现,外循环变量设为i,内循环变量设为j。外循环重复9次,内循环依次重复9,8,...,1次。每次进行比较的两个元素都是与内循环j有关的,它们可以分别用a[j]和a[j+1]标识,i的值依次为1,2,...,9,对于每一个i, j的值依次为1,2,...10-i。
全文看百科
baike.baidu/view/254413
相似回答
大家正在搜