排序的一道算法题

选择排序、快速排序、希尔排序、堆排序不是稳定的排序算法,
冒泡排序、插入排序、归并排序和基数排序是稳定的排序算法。

排序的一道算法题

冒泡排序 相邻交换 从前比到后面
插入排序 插入一段有序的数列 前面比
选择排序 每次都选择后面当中最小的元素 后面比
快速排序 每一次都确定一个元素的最终位置,以它为界分为比它大的和比它小的
归并排序 二分成多个小数列,然后不断的合并有序数组
基数排序 就是个十百依次进行排序,需要注意的是,
一定要从低到高 否则后来的岂不是后来居上
除了最后一次的所有都需要是稳定的 这样才能保证以前的顺序可以得到保留
http://www.cnblogs.com/sun/archive/2008/06/26/1230095.html
希尔排序 间隔性的排序,利用的是直接插入排序在基本有序的情况下,排序效率最高
堆排序 每次都从最上面取数 然后利用很少的复杂度进行调整 复杂度是取最高系数注意了!

求无序数组的中位数:
https://blog.****.net/zdl1016/article/details/4676882
又必须是log(N)
思路一:用小顶堆法
思路二:用快排的方法
思路三:分治法

关于sjx的两个问题:
1. 两个有序数组求中位数,复杂度为log(m+n) 在我看来这根本就是不可能的 但是有一种方法稍微有一点可能 取1/2的数,然后建堆 然后跟剩下的1/2进行对比。最后造假都能过必须是评价系统有问题。话又说回来,直接取1/2的数建一个堆啊
2. 至于把整数反一下的问题,我觉得时间复杂度应该是一样的,效率我也不明白为什么乘法的效率会比加法的效率高,但是有一点,从扩展性的角度来说,必须是字符串的方式更好