我跟同学说冒泡法和选择排序,同学不相信请各位大大为我证明清白~~下面一个是冒泡,一个是选择排序,请帮忙指出谢谢!一:#include"stdio.h"main(){ int i,j,t; int a[10]; for(i=0;i

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/06 20:09:48

我跟同学说冒泡法和选择排序,同学不相信请各位大大为我证明清白~~下面一个是冒泡,一个是选择排序,请帮忙指出谢谢!一:#include"stdio.h"main(){ int i,j,t; int a[10]; for(i=0;i
我跟同学说冒泡法和选择排序,同学不相信
请各位大大为我证明清白~~
下面一个是冒泡,一个是选择排序,请帮忙指出谢谢!
一:
#include"stdio.h"
main()
{ int i,j,t; int a[10];
for(i=0;i

我跟同学说冒泡法和选择排序,同学不相信请各位大大为我证明清白~~下面一个是冒泡,一个是选择排序,请帮忙指出谢谢!一:#include"stdio.h"main(){ int i,j,t; int a[10]; for(i=0;i
冒泡和快速排序的区别在于:冒泡算法,每次比较如果发现较小的元素在后面,就交换两个相邻的元素.将待排序的元素看作是竖着排列的"气泡",较小的元素比较轻,从而要往上浮.在冒泡排序算法中我们要对这个"气泡"序列处理若干遍.所谓一遍处理,就是自底向上检查一遍这个序列,并时刻注意两个相邻的元素的顺序是否正确.如果发现两个相邻元素的顺序不对,即"轻"的元素在下面,就交换它们的位置.显然,处理一遍之后,"最轻"的元素就浮到了最高位置;处理二遍之后,"次轻"的元素就浮到了次高位置.在作第二遍处理时,由于最高位置上的元素已是"最轻"元素,所以不必检查.一般地,第i遍处理时,不必检查第i高位置以上的元素,因为经过前面i-1遍的处理,它们已正确地排好序.而选择排序算法的改进在于:先并不急于调换位置,先从A[1]开始逐个检查,看哪个数最小就记下该数所在的位置P,等一躺扫描完毕,再把A[P]和A[1]对调,这时A[1]到A[10]中最小的数据就换到了最前面的位置.
所以,选择排序每扫描一遍数组,只需要一次真正的交换,而冒泡可能需要很多次.比较的次数是一样的.
其实看你声明的变量的个数就知道了.选择的要比冒泡的多声明一个,用来存储最小(或最大的)元素的下标.而冒泡的比较后直接换.