排序算法
大数据中经常会用到排序算法。
冒泡排序,选择排序,插入排序,归并排序,堆排序,快速排序
复杂度(最差情况)分别为 冒泡: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次提问的机会,让你猜中该数据所在的位置 。