题目:
题解:
/*
1.将字符串原串与副本进行绑定成一个节点
2.对字符串副本进行按ascii码表进行从小到大排序
3.按照字符串进行比较排序
4.合并
*/
typedef struct Node{
char*s;
char*s_vice;
int len;
}Node;
void sortShellChar(char*s,int len){
for(int distance=len/2;distance!=0;distance/=2){
for(int i=distance;i<len;i++){
char c=s[i];
int pre=i-distance;
while(pre>=0&&s[pre]>c){
s[pre+distance]=s[pre];
pre-=distance;
}
if(pre+distance!=i){
s[pre+distance]=c;
}
}
}
}
void sortShellString(Node*arr,int size){
for(int distance=size/2;distance!=0;distance/=2){