Loading...
介绍快速排序是由东尼·霍尔所发展的一种排序算法,该算法采用了“分治思想”,同时快速排序由于排序效率在同为O(n*logn)的几种排序方法中效率较高,因此经常被采用。时间复杂度:最好情况:O(nlogn)平均情况:O(nlogn)最坏情况:O(n^2)稳定性:不稳定(不稳定发生在基准元素flag与arr[index+1]交换时)额外的空间:O(logn)~O(n)过程从序列中将某一个元素(通常...
介绍插入排序是一种简单直观的排序算法,其工作原理类似于人们对扑克牌的排序。时间复杂度:最好情况:O(n)平均情况:O(n^2)最坏情况:O(n^2)稳定性:稳定额外的空间:O(1)过程将第一个元素认定为已经被排序从第二个元素开始,取出元素,将取出的元素由后向前与其前面的元素进行比较若取出元素小于该元素,则继续向前扫描,直到取出元素小于或等于该元素将取出元素插在该元素后面重复步骤2~4直至所有...
介绍选择排序和冒泡排序的算法其实都比较好理解,都是从大到小(从小到大)操作的排序,冒泡排序的区别:冒泡排序通过依次交换相邻两个顺序不合法的元素位置,从而将当前最小(大)元素放到合适的位置;而选择排序每遍历一次都记住了当前最小(大)元素的位置,最后仅需一次交换操作即可将其放到合适的位置。时间复杂度:最好情况:O(n^2)平均情况:O(n^2)最坏情况:O(n^2)稳定性:不稳定额外的空间:O(...
介绍这东西就没啥好介绍的了,众所周知的冒泡排序算法时间复杂度:最好情况:O(n)平均情况:O(n^2)最坏情况:O(n^2)稳定性:稳定额外的空间:O(1)过程比较相邻的元素,如果前一个比后一个大,就把它们两个调换位置。对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。针对所有的元素重复以上的步骤,除了最后一个。持续每次对越来越少的元素重复上面的...