diff --git a/README.md b/README.md index c2e1d86..5893c30 100644 --- a/README.md +++ b/README.md @@ -71,6 +71,8 @@ **线性排序算法** * 基数排序 +* 桶排序 +* 计数排序 ### 查找算法 diff --git a/哈希表/README.md b/哈希表/README.md index ea3b62c..4cf5c75 100644 --- a/哈希表/README.md +++ b/哈希表/README.md @@ -35,14 +35,14 @@ for (int i=0;i1) + { + merge_sort(a,length/2); + merge_sort(a+length/2,length-length/2); + merge_array(a,length/2,a+length/2,length-length/2); + } + + + + + ### 堆排序 利用堆这种数据结构设计的一种排序算法 @@ -177,36 +223,14 @@ 推排序还可以用来求 top-K 大(小)的问题。 +接下来,我们看一组排序的动画,你看看能不能猜到他们使用了什么排序算法完成。 -### 归并排序merge - -分治算法,必然用到递归 - -2个有序数组的合并操作是O(n)的复杂度 -因此我们可以将无序的数组,分成2个子数组分别排序,然后再merge,依次类推 - -归并排序的步骤 -1. 分解 , 将一个数组分成n/2个子数组,每个序列2个元素,(2路归并) -2. 解决 , 将各个子数组都排好序,然后 merge 2个有序数组 -3. 合并 - - if (length>1) - { - merge_sort(a,length/2); - merge_sort(a+length/2,length-length/2); - merge_array(a,length/2,a+length/2,length-length/2); - } - - - - - -### 小结 - -常见的排序算法都是比较排序,比较排序的时间复杂度通常为 O(n^2) 或 O(nlogn) - - - +[](./quicksort.gif) +[](./quicksort.gif) +[](./quicksort.gif) +[](./quicksort.gif) +[](./quicksort.gif) +[](./quicksort.gif) ## 3种线性排序算法 @@ -233,6 +257,8 @@ ###小结 +常见的排序算法都是比较排序,比较排序的时间复杂度通常为 O(n^2) 或 O(nlogn) +但是如果带排序的数字有一些特俗性时,我们可以根据这来设计更加优化的排序算法。 diff --git a/排序算法/bubblesort.gif b/排序算法/bubblesort.gif new file mode 100644 index 0000000..03236ca Binary files /dev/null and b/排序算法/bubblesort.gif differ diff --git a/排序算法/heapsort.gif b/排序算法/heapsort.gif new file mode 100644 index 0000000..f73ccf2 Binary files /dev/null and b/排序算法/heapsort.gif differ diff --git a/排序算法/mergesort.gif b/排序算法/mergesort.gif new file mode 100644 index 0000000..40f3c04 Binary files /dev/null and b/排序算法/mergesort.gif differ diff --git a/排序算法/qsort.gif b/排序算法/qsort.gif new file mode 100644 index 0000000..c107105 Binary files /dev/null and b/排序算法/qsort.gif differ diff --git a/排序算法/selectsort.gif b/排序算法/selectsort.gif new file mode 100644 index 0000000..3261137 Binary files /dev/null and b/排序算法/selectsort.gif differ diff --git a/排序算法/shellsort.gif b/排序算法/shellsort.gif new file mode 100644 index 0000000..8138ef7 Binary files /dev/null and b/排序算法/shellsort.gif differ