本系列算法整�自:https://github.com/hustcc/JS-Sorting-Algorithm
�时也�考了维基百科�了一些补充。
排åº�算法是《数æ�®ç»“æž„ä¸Žç®—æ³•ã€‹ä¸æœ€åŸºæœ¬çš„算法之一。
排åº�算法å�¯ä»¥åˆ†ä¸ºå†…部排åº�和外部排åº�,内部排åº�是数æ�®è®°å½•在内å˜ä¸è¿›è¡ŒæŽ’åº�,而外部排åº�æ˜¯å› æŽ’åº�的数æ�®å¾ˆå¤§ï¼Œä¸€æ¬¡ä¸�能容纳全部的排åº�记录,在排åº�过程ä¸éœ€è¦�访问外å˜ã€‚常è§�的内部排åº�算法有:æ�’入排åº�ã€�希尔排åº�ã€�选择排åº�ã€�冒泡排åº�ã€�归并排åº�ã€�快速排åº�ã€�å †æŽ’åº�ã€�基数排åº�ç‰ã€‚ç”¨ä¸€å¼ å›¾æ¦‚æ‹¬ï¼š
点击以下图片查看大图:
关于时间��度
平方阶 (O(n2)) 排� �类简�排�:直接�入�直接选择和冒泡排�。
线性对数阶 (O(nlog2n)) 排åº� 快速排åº�ã€�å †æŽ’åº�和归并排åº�ï¼›
O(n1+§)) 排�,§ 是介于 0 和 1 之间的常数。 希尔排�
线性阶 (O(n)) 排åº� 基数排åº�,æ¤å¤–还有桶ã€�箱排åº�。
关于稳定性
稳定的排�算法:冒泡排���入排��归并排�和基数排�。
ä¸�是稳定的排åº�算法:选择排åº�ã€�快速排åº�ã€�希尔排åº�ã€�å †æŽ’åº�。
��解释:
- n:数�规模
- k:"桶"的个数
- In-place:å� 用常数内å˜ï¼Œä¸�å� 用é¢�外内å˜
- Out-place:å� 用é¢�外内å˜
- 稳定性:排åº�å�Ž 2 个相ç‰é”®å€¼çš„顺åº�和排åº�之å‰�它们的顺åº�相å�Œ
点我分享笔记