作业帮 > 综合 > 作业

编程:按从小到大的顺序将数字排列.是不是要依次作比较?比如:a,b,c,d;要比较a,b;a,c;a,d;b,c;b,d

来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/11/11 04:02:12
编程:按从小到大的顺序将数字排列.是不是要依次作比较?比如:a,b,c,d;要比较a,b;a,c;a,d;b,c;b,d;c,d;
编程:按从小到大的顺序将数字排列.是不是要依次作比较?比如:a,b,c,d;要比较a,b;a,c;a,d;b,c;b,d
不同方法不一定两两都比较的
内排序的方法有许多种,按所用策略不同,可归纳为五类:插入排序、选择
排序、交换排序、归并排序和分配排序.
其中,插入排序主要包括直接插入排序和希尔排序两种;选择排序主要包括直接选择排序和堆排序;交换排序主要包括气(冒)泡排序和快速排序.
冒泡排序
已知一组无序数据a[1]、a[2]、……a[n],需将其按升序排列.首先比较a[1]与a[2]的值,若a[1]大于a[2]则交换两者的值,否则不变.再比较a[2]与a[3]的值,若a[2]大于a[3]则交换两者的值,否则不变.再比较a[3]与a[4],以此类推,最后比较a[n-1]与a[n]的值.这样处理一轮后,a[n]的值一定是这组数据中最大的.再对a[1]~a[n-1]以相同方法处理一轮,则a[n-1]的值一定是a[1]~a[n-1]中最大的.再对a[1]~a[n-2]以相同方法处理一轮,以此类推.共处理n-1轮后a[1]、a[2]、……a[n]就以升序排列了.
优点:稳定;
缺点:慢,每次只能移动相邻两个数据.