对于一个序列进行 从小到大 排序,例如 3 2 5 1 5 2 3,怎么求最少的交换次数.请求类似问题的确切求法.
问题描述:
对于一个序列进行 从小到大 排序,例如 3 2 5 1 5 2 3,怎么求最少的交换次数.请求类似问题的确切求法.
答
有一种算法叫 快速排序,它是通过递归来达到排序的目的.
快速排序: 其实就是选取序列的任意一个数,把 比他大的放左边,比他小的放右边(其实左右你自己可以随意定义),然后分成子序列.继续重复上述的步骤,知道满足了序列个数是1就会停止.这样算法的时间复杂度是 : O(n log2 n).
希望对你有帮助这我知道,有可能快排比冒泡之类的慢吗?我想说最统一的情况冒泡的时间复杂度 是 n^2, 快速排序 肯定比 它 快啦。统一的情况就是: 你把什么都想成极限。这样就很明显了,这所谓路遥知马力啊