谁能举个例子解释一下,什么是快速排序,冒泡排序,直接插入排序,堆序法?thx

如题所述

快速排序:quicksort: 找数组中一个数,把比他大的放到左边,比他小的放到右边,然后用递归排他左右边的,直到排完,复杂度O(nlgn)。
4,2,1,6,5.开始选4-2,1,4,6,5,再在2,1里选2-1,2,在6,5里选6-5,6 这样就完了1,2,4,5,6.

冒泡排序: bubblesort:简单的方法,从第一个数开始,依次和后面比较,比后面大就往后移动,直到排完,举例: 5,1,2,3,4. 先看5-1,5,2,3,4-1,2,5,3,4-1,2,3,5,4-1,2,3,4,5.这例子特殊,一下排完,事实上复杂度为O(n*n);
插入排序: insertion sort: 简单的方法,和打牌时排序一样,复杂度O(n*n)
1,3,2,4,7,5-1,2,3,4,7,5-1,2,3,4,5,7.

堆: heapsort: 和树比较像,有根大枝小或根小枝大的特点,很难讲明白,时间复杂度为O(n*lgn)

建议看《算法导论》,或《programming pearls》 很清楚。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-05-03

直接插入排序:一种最简单的排序方法