標籤:

排序——希爾排序

希爾排序,先做「宏觀」調整,再做「微觀」調整

複雜度

在代碼實現上,把直接插入排序中的增量由1改為d即可

九度oj 1054 字元串內排序 ac.jobdu.com/problem.ph

#include <stdio.h>#include <string.h>#define MAXN 200char str[MAXN + 10] = "3625174";int d_set[] = {5, 3, 1};int main(){ while( gets(str) ) { int len = strlen(str); for( int t = 0; t < 3; t++ ) { int d = d_set[t]; for( int i = d; i < len; i++ ) { char cur = str[i]; int index = i - d; while( index >= 0 && str[index] > cur ) { str[index + d] = str[index]; index -= d; } str[index + d] = cur; } } printf( "%s
", str ); } return 0;}

推薦閱讀:

浙江大學-數據結構-選講Huffman Codes-7.4.3
九章演算法 | Facebook 面試題:等差子序列
浙江大學-數據結構-歸併排序-9.4.2
Python數據結構與演算法刷題(1)——害死人不償命的(3n+1)猜想
浙江大學-數據結構-歸併排序-9.4.3

TAG:數據結構 |