关于选择、冒泡排序的思考

原创 2007年09月27日 09:10:00
  
记得大一老师刚讲选择排序与冒排序的时候,我们只知道死记硬背:两个 for 语句的循环,以及一段交换语句。两者之间的差别老师只是说选择是将大的数选项出来,而冒泡则只是将较小的数依次从下排像冒水泡一样一层层地冒出来。也不知道是不是老师不知道它们之间的真正区别,还是老师怕讲得太深了,怕我们这些刚接触语言的学生不懂,也许是后者吧。
       后来再学《数据结构》,老师只是说:选择、冒泡排序在以前的课中已经讲过,课上就不讲了,同学们下去要复习一下。再后来,我考程序员时,问同学选择、冒泡排序究竟有什么区别,同学只是说:冒泡是将较小的数一层层地冒出来,而选择则是选择较大的。问了几个同学,答案竟然是出其的一致。我曾试着写出这两段小程序,结果是写出来了,可怎么看怎么不顺眼,和书一对比,虽然可以正确地输出结果,但却完全地错了,我只能又死记住了这两段程序。现在又在考软工,我又问了同学相同的问题,结果和上次完全相同。所以我只好尝试自己去解决问题。经过查阅资料,才发现,它们之间的区别主要有两点:
一、              选择排序是第 I 个元素可以和第 I+1、第I+2…第 n-1个元素比较并交换(如果符合条件);而冒泡排序则是第 I 个元素只可以和第 i+1 个元素比较并进行交换(如果符合条件)
二、              是要特别注意两个 for 语句的初始条件。选择排序:外循环初始值是侍排序列第 I 个元素或第 n-I 个元素,内循初始值是待排序列的第 i+1 个元素或第 n-i-1个元素;冒泡排序:外循环初始值是待排序列的首元素或尾元素,而内循环初始值与外循环相同。
千万要记住两种排序皆可执行升序或降序排序。写到这里,也许你也明白了吧。
版权声明:本文为博主原创文章,未经博主允许不得转载。

Java排序算法之冒泡排序和选择排序

前言:纵然伤心,也不要愁眉不展,因为你不知是谁会爱上你的笑容。——泰戈尔 《飞鸟集》 原文出处: import java.util.Arrays; class Demo { public...
  • u014158743
  • u014158743
  • 2016年09月19日 23:14
  • 615

用JS实现冒泡排序、插入排序、选择排序、快速排序

这些基础的排序算法无论用什么语言,还是都能实现的。
  • ll328062201
  • ll328062201
  • 2014年09月30日 12:11
  • 1303

基础排序总结(冒泡排序、选择排序、插入排序)

1、冒泡排序1.1、简介与原理冒泡排序算法运行起来非常慢,但在概念上它是排序算法中最简单的,因此冒泡排序算法在刚开始研究排序技术时是一个非常好的算法。冒泡排序原理即:从数组下标为0的位置开始,比较下标...
  • u013249965
  • u013249965
  • 2016年09月18日 16:08
  • 2827

冒泡排序和选择排序法的图示解析

思路:在进行冒泡法排序(升序)时,需要将数组元素(len)两两比较,如果 前面的元素大于后面的元素,则交换两个数,否则,比较下一个元素和它的下一个元素的大小,依次执行,执行一次循环,可以找到当前...
  • qq_34992845
  • qq_34992845
  • 2016年11月22日 00:25
  • 1441

java中冒泡排序与选择排序的区别

初学java语言,排序算法绝对是我们拿来实践的好例子。而在排序中有两种简单的算法是绕不开的,就是冒泡排序与选择排序。下面来分别讲解: 冒泡算法:假设数组长度为lenght,冒泡算法的外循环为leng...
  • tiantianhuanle
  • tiantianhuanle
  • 2016年10月15日 21:27
  • 5341

各种排序总结(一)之--—冒泡排序、选择排序、快速排序

各种排序总结——冒泡排序、选择排序、快速排序        1、冒泡排序是比较经典的排序方法,是一种用时间换空间的排序方法。我总结了一下它的特点:(1)它的时间复杂度是;(2)每一趟相邻元素两两比较完...
  • xinyu2015
  • xinyu2015
  • 2015年11月04日 16:36
  • 3872

【算法】插入排序/冒泡排序/选择排序

插入排序 插入排序的思想为:从数组的第二个元素开始遍历整个数组。针对每个元素,依次将其前面的所有元素和他进行比较,大于它的元素均向后移动,最后将该元素插入。 插入排序是一种稳定的排序算法。 时间...
  • cauchyweierstrass
  • cauchyweierstrass
  • 2015年11月10日 20:33
  • 1759

冒泡排序,选择排序,插入排序的区别

#include int swap(int *a,int *b) { int t=*a; *a=*b; *b=t; } /* 冒泡排序的原理:每次在无序队列里将相邻两个数依...
  • wdkirchhoff
  • wdkirchhoff
  • 2014年12月07日 14:02
  • 8528

算法基础(一)——冒泡,简单选择排序,二分查找

做为数学专业的我,其实一直特别喜欢数学,只不过大学的数学课程让我有点失望,所以选择了专心学习另一个行业计算机,但是随着学习的不断深入,感觉到了数学魅力,数学可以运用到几乎所有的行业,它无处不在,在计算...
  • liujiahan629629
  • liujiahan629629
  • 2014年02月24日 21:37
  • 5210

C#-冒泡排序和选择排序

将一个数组排序 //排序 #include int main() { int a[]={3,5,2,56,275,85,29,24}; int temp,i,j; int length= s...
  • qiulh125
  • qiulh125
  • 2015年12月25日 15:53
  • 796
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于选择、冒泡排序的思考
举报原因:
原因补充:

(最多只允许输入30个字)