码迷,mamicode.com
首页 > 其他好文 > 详细

躲不掉的“排序算法”

时间:2014-09-07 22:29:06      阅读:288      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   ar   strong   数据   2014   问题   

  

     排序算法,以前米老师讲VB的时候就讲过排序,随机显示10个数,并显示最大的数。利用冒泡、希尔等等排序算法都讲过,这次数据机构导论再次遇到,软考再次遇到,应该算是比较容易的一项吧。

            学习完数据结构导论,又进一步了解到了排序算法。我们都知道,排序是数据处理的一种运算,因为数据处理花费的时间很多,人么为了提高计算机的运行效率而提出了各种各样的排序算法。

          用米老师的话说就是“两两比较交换”。

    比较两个关键字的大小,将记录从一个位置移动到另一个位置。

    排序的稳定性:

    判断稳定性,通过相同键值的两个记录在排序前后相对位置变化情况进行判断。

         例如:已知一组数据:132562

        通过排序得到122356    排序前带下划线的2在不带下划线的2后面,排完序仍然在它后面就是稳定的,否则就是不稳定的。

bubuko.com,布布扣

    

1、插入排序

 

       直接插入排序:依次将每个记录插入到一个已排好序的有序表中,得到一个新的、记录仪数增加1的有序表。

       个人理解:通过和与前面排好的有序表数据进行比较,然后放到合适的位置去,直至排完。直接插入排序是相对于记录数较少的一种排序。

 

2、交换排序(两两比较,如果两个键值的大小出现逆序,则交换。)

 

      冒泡排序:将第一个记录的键值和第二个记录的键值进行比较,若为逆序,则交换;然后继续比较第二个和第三个,第n-1个和第n个。

      个人理解:后一个数与前一个数进行比较,看是否需要交换。

 

      快速排序:n个记录中取一个记录的键值为标准,通过一趟排序将待排序的记录分为小于、等于、大于这个键值的独立部分,再继续进行快速排序。

     第一趟排序比较难(对外于我来说),这个会了后面也就简单了。一趟排序的步骤:将两个指针i,j分别指向初始位置和最后的位置,然后反复操作一下两步:

(1)、j逐渐减小,并逐次比较j指向的元素和目标元素的大小,若p(j)<T则交换位置。

(2)、i逐渐增大,并逐次比较I指向的元素和目标元素的大小,若p(i)>T则交换位置。

 

3、选择排序

           直接选择排序:在i此选择操作中,通过n-i次的键值比较,从n-i+1中选出键值最小的记录,和第i(1<=i<=n-1)个记录交换。

个人理解:找出最小的那个数与前面的数进行交换,前面排好的就不能动了。

 

          堆排序:

              首先要知道堆排序是一种树形选择排序.将一个初始序列建成一个堆就是一个反复筛选的过程.

个人理解:自上而下进行调整,重建堆的过程。

4、归并排序

将两个或两个以上的有序表合并成一个新的有序表。

        二路归并排序

                是将两个有序表合并成一个有序表的排序方法。

个人理解:1、每相邻的两个记录合并,两两比较、排序

                      2、再两个合并再比较进行排序。

总结:一句话“两两比较交换!”

         以上学习方法是非常不好的,虽然是理解了每一种排序,但是没有进行比较,没有编制知识网,每种排序都有可能有相似之处,也有差别之处,用的过程可能会混淆。

学习方法: 结合以前老师讲过的,把它当做旧知识来重温,简单化,其实就是旧知识。

          遇到的问题:

          因为自己没有去相互比较每种排序,而每种排序又有一些相似之处,所有会混淆。

插入排序VS冒泡排序插入排序是从第二个键值开始,与前面的数进行比较,放到合适的位置;

                     冒泡排序是1和2的键值比较,2和3的键值比较。。。。。。n和n-1的键值比较,出现逆序则交换。

冒泡排序VS直接选择排序:

                    冒泡排序是一个又三角,直接选择排序是一个左三角。

                    冒泡排序整个排序过程至多进行n-1趟起泡,直接选择排序进行n-1次比较,每趟找出最小(最大)的那个键值与前面的进行交换。

    这样自己容易混的就不会记混了。个人理解可能存在问题,望大家指出,谢谢。



躲不掉的“排序算法”

标签:style   blog   http   color   ar   strong   数据   2014   问题   

原文地址:http://blog.csdn.net/u010785685/article/details/39122801

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!