描述 |
Lily上课时使用字母数字图片教小朋友们学习英语单词,每次都需要把这些图片按照大小(ASCII码值从小到大)排列收好。请大家给Lily帮忙,通过C语言解决。
|
---|---|
知识点 | 字符串 |
运行时间限制 | 0M |
内存限制 | 0 |
输入 | Lily使用的图片包括"A"到"Z"、"a"到"z"、"0"到"9"。输入字母或数字个数不超过1024。
|
输出 | Lily的所有图片按照从小到大的顺序输出
|
样例输入 | Ihave1nose2hands10fingers |
样例输出 | 0112Iaadeeefghhinnnorsssv |
#include <iostream> #include <string> #include <stdlib.h> using namespace std; int main() { char szStr[1024] = {0}; int gag = 0, nLen = 0;; int i = 0 , j = 0, k = 0; int nTemp = 0; cin >> szStr; nLen = strlen(szStr); /* 采用希尔排序 */ for(gag = nLen/2; gag > 0; gag = gag/2) { for(i = 0; i < gag; i++) { for(j = i+gag; j < nLen; j = j+gag) { for(k = j; k >= gag; k = k - gag) { if(szStr[k] < szStr[k-gag]) { nTemp = szStr[k]; szStr[k] = szStr[k-gag]; szStr[k-gag] = nTemp; } } } } } cout << szStr << endl; return 0; }