五大排序(二)

上接:五大排序(一)

5、冒泡排序

所有数据分成两类,排好类和待排类,初始默认所有元素都是待排类,冒泡排序:按一定顺序(序号或小标从小到大),相邻之间的数据进行比较交换,例如:排序要求,数据从小到大排列,下标0和下标1里的数据进行比较,0中数据大于1中数据时(不大于时,不用交换,注意,此时仍是小标1里的值和后面的数据进行比较),两个数据进行交换,然后下标1里的数据再和下标2中的数据进行比较,以此类推,最后一个下标中的元素一定为最大的数值,重复多次,排序就成了。注意:和简单选择排序的区别:举例说明简单选择排序从待排类中选的数据的过程,从待排类中选择最大的数值,按数组下标从小到大的顺序,我从待排类中选最小下标的位置,然后,让该位置存的数和剩下的所有数进行比较,如果某数比最小下表中的数大就交换,然后,仍是最小下标中的值和剩下的数进行比较。


6、快速排序

从要排序的数据中选择一个数,作为标准中心值,就是用这个数和其他所有的数据进行比较,把小于该数的数据放到他的左边,把大于该数的数据放到他的右边,然后,再把他的左右边部分分别依次依据这个方式排序,不断重复,直到最后左右部分中的元素只有一个为止。代码的实现思想:三个标识标量,分别存放的是该部分数据的下界和上界,以及那个标准中心值的位置,要注意的是,和标准中心值的比较,两端的元素都有份,标准中心值是人为规定的,最后,不一定是在所有数据的中心位置。

7、归并排序

初始时,我们把每一个数据当成一个整体,然后,我们两个整体两个整体的归并成一个整体,例如:下标为1和2的归并为一个整体,下标为3和4的归并为一个整体。然后,我们再把归并后的整体在两个整体两个整体的归并,以此类推,最后,形成一个整体。


8、基数排序

基数排序运用了多关键字排序的思想,但是,针对的是但关键字,解释一下关键字的意思,关键字就是用户要求如何排序的一种具体形式的表现,前面说的那些排序包括举例都是依据的是单关键字排序。举例说明关键字:用户要求对这些数据的排序是按大小排序,但当数据相等时,按姓名排序;让计算机满足该用户要求排序时,必须有两个关键字,数据的大小,姓名的先后。我们继续看基数排序,基数排序的单关键字和多关键字的意思是:用户的要求只有一个,但是,我把这个要求给细分成了多个,这个就是多关键字思想,单关键字应用。举例说明:用户的要求是按数据的大小排序,计算机在操作时,他把数据分别从各各位上的数的大小进行比较,基数就是数制中用到的不重复的数,例如:十进制的基数为:0……9;二进制的基数为0,1;等等(基数和权在这里不讲了,有兴趣的自己可以查些资料)。



对这些排序的基本原理自己明白了,但是,具体的应用,现在很多还不知道,这些排序的代码真的很经典,在这里不写了,因为,有些代码我连看都没看懂呢!更不用说我写出来了,我不会粘这些代码,因为它不是我的东西。





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值