# å¸å°æåº å¸å°æåºï¼ä¹ç§°éåå¢éæåºç®æ³ï¼æ¯æå ¥æåºçä¸ç§æ´é«æçæ¹è¿çæ¬ãä½å¸å°æåºæ¯éç¨³å®æåºç®æ³ã å¸å°æåºæ¯åºäºæå ¥æåºç以ä¸ä¸¤ç¹æ§è´¨èæåºæ¹è¿æ¹æ³çï¼ - æå ¥æåºå¨å¯¹å ä¹å·²ç»æå¥½åºçæ°æ®æä½æ¶ï¼ æçé«ï¼ å³å¯ä»¥è¾¾å°çº¿æ§æåºçæç - ä½æå ¥æåºä¸è¬æ¥è¯´æ¯ä½æçï¼ å 为æå ¥æåºæ¯æ¬¡åªè½å°æ°æ®ç§»å¨ä¸ä½ å¸å°æåºçåºæ¬ææ³æ¯ï¼å å°æ´ä¸ªå¾ æåºçè®°å½åºååå²æä¸ºè¥å¹²ååºååå«è¿è¡ç´æ¥æå ¥æåºï¼å¾ æ´ä¸ªåºåä¸çè®°å½âåºæ¬æåºâæ¶ï¼åå¯¹å ¨ä½è®°å½è¿è¡ä¾æ¬¡ç´æ¥æå ¥æåºã ## 1. ç®æ³æ¥éª¤ 1. éæ©ä¸ä¸ªå¢éåºåt1ï¼t2ï¼â¦ï¼tkï¼å ¶ä¸ ti > tjï¼tk=1ï¼ 2. æå¢éåºåä¸ªæ° kï¼å¯¹åºåè¿è¡ k è¶æåºï¼ 3. æ¯è¶æåºï¼æ ¹æ®å¯¹åºçå¢é tiï¼å°å¾ æåºåå岿è¥å¹²é¿åº¦ä¸º m çååºåï¼åå«å¯¹åå表è¿è¡ç´æ¥æå ¥æåºãä» å¢éå å为 1 æ¶ï¼æ´ä¸ªåºåä½ä¸ºä¸ä¸ªè¡¨æ¥å¤çï¼è¡¨é¿åº¦å³ä¸ºæ´ä¸ªåºåçé¿åº¦ã ## 2. JavaScript 代ç å®ç° ```js function shellSort(arr) { var len = arr.length, temp, gap = 1; while(gap < len/3) { //卿å®ä¹é´éåºå gap =gap*3+1; } for (gap; gap > 0; gap = Math.floor(gap/3)) { for (var i = gap; i < len; i++) { temp = arr[i]; for (var j = i-gap; j >= 0 && arr[j] > temp; j-=gap) { arr[j+gap] = arr[j]; } arr[j+gap] = temp; } } return arr; } ```