js常用的2中排序方法:冒泡排序和快速排序

冒泡排序:例如9 4 5 6 8 3 2 7 10 1 

首先:9和4比较  4放前   4 9 5 6 8 3 2 7 10 1 

      4和5比较   4不动   4 9 5 6 8 3 2 7 10 1 

      4和6比较    4不动   4 9 5 6 8 3 2 7 10 1 

      4和3比较    3放前   3 9 5 6 8 4 2 7 10 1 

      3和2比较    2放前   2 9 5 6 8 4 3 7 10 1

最后第一轮为:1 9 5 6 8 4 3 7 10 2    通过第一轮最小的数放到了第一个

平均时间复杂度:o(n平方);

最大时间复杂度:o(n平方)

最小时间复杂度:o(n)

稳定性:稳定     a在b前面 当a=b时 仍然在前面

 

快速排序:

 

例如:10  5  81  54  6  14  76  13

设置i 和 j 分别指向 10 和13

 

首先 j从后往前找比10小的数 找到6 并交换 10和6的位置

得到: 6 5 81 54 10 14 76 13

 现在将i往后移一位 i=5  j=10;

让i从前往后找比10大的数  找到81 交换81和10的位置,得

 6 5 10 54 81 14 76 13

现在i=10  j=81;

让j从后往前找比10小的数  找不到

 

故第一轮排序为:6 5 10 54 81 14 76 13   通过第一轮:比10大的数在右边,比10小的数全在左边

 

平均时间复杂度:o(nlogn);

最大时间复杂度:o(n平方)

最小时间复杂度:o(nlogn)

稳定性:不稳定

posted on 2018-06-26 09:16  晓风零乱  阅读(145)  评论(0编辑  收藏  举报

导航