排序算法

大数据中经常会用到排序算法。

      冒泡排序,选择排序,插入排序,归并排序,堆排序,快速排序

      复杂度(最差情况)分别为   冒泡:O(n2),选择:O(n2),插入:O(n2

                                                   归并:O(nlogn),堆:O(nlogn), 快速:O(nlogn)

    冒泡排序:数据遍历,规则是遍历位置处的当前两个数据,大的数据放在前面,小的数据放在后面。每次遍历都会将最大的数据移动到最后。

                   例如 2 8 6 5 3 -->  2 8 6 5 3 --> 2 6 8 5 3 -->2 6 5 8 3 --> 2 6 5 3 8

   选择排序 : 每次遍历获取数组中的最大值(最小值)并将,交换排序所在位置。

                   例如 2 8 6 5 3 -->  2 8 6 5 3 --> 2 3 6 5 8 --> 2 3 5 6 8 --> 2 3 5 6 8

   插入排序: 类似抓纸牌,取出一个数排序一次,一直往复直到最后一个数据

                   例如 2 8 6 5 3 -->  2 -> 2 8 -->2 6 8 -> 2 5 6 8 -> 2 3 5 6 8

   归并排序: 分而治之,将大数组变成小数组 ,然后整合到一起

                 例如 2 8 6 5 3 9 --> 2 8---6 5--3 9  --> 2 8--5 6--3 9 --> 2 5 6 8--3 9 --> 2 3 5 6 8 9

   堆排序 : 前面需要产生一个对数组,后面使用简单的选择排序

   快速排序: 分而治之, 首先选择一个‘’基准数”,大于基准数的放在左边小于的放在右边,重复上述步骤。。 类似 在1000个有序的数中,给你10次提问的机会,让你猜中该数据所在的位置 。

posted on 2018-07-30 11:18  叶子不要闹  阅读(100)  评论(0编辑  收藏  举报