字符串数组按字母排序

海子IT 发布于 2013/03/05 20:34
阅读 2K+
收藏 0

用C#对一个字符串数组按字母排序,其实就是想实现文件夹里的文件按小到大排功能。不想用string.sort()。也就是想自己把sort()的代码写出来。想了半天没想出来。在这求解。谢谢

string[] fileNames={"adkf","ladk","loweiaaa","weigh","bbb"};

假设现在要对这个字符串数组排序。

加载中
0
优游幻世
优游幻世
C#有c语言的strcmp之类的功能吗?没有就自己实现一个。之后再实现一个快速排序。。。
优游幻世
优游幻世
回复 @海子IT : 网上搜搜就有了,我都忘了。。。
海子IT
C#有string.compare(),是我写不出快速排序的代码,求代码
0
8
870177103
稍作修改吧 int QuickSort (const PDATA pdtArr ,const COUNT ctArr) { DATA dtTemp ; PDATA pdtFirst ,pdtLast ,pdtLeft ,pdtRight ; PPDATA ppdtPeek ; if (pdtArr == NULL OR ctArr < SORT_CTARR_MIN OR ctArr > SORT_CTARR_MAX) //Check Inlegal Parameters return ERROR ; ppdtPeek = (PPDATA) malloc (ctArr & 0X00000001 ? ctArr + 8 : ctArr + 4) ; *ppdtPeek = NULL ; pdtLeft = pdtArr ; pdtRight = pdtArr + ctArr - 1 ; do { pdtFirst = pdtLeft ; pdtLast = pdtRight ; while (TRUE) { #ifdef SORT_ZORDER_DOWN while (*pdtLeft > *pdtRight AND pdtLeft < pdtRight) #else while (*pdtLeft < *pdtRight AND pdtLeft < pdtRight) #endif pdtLeft++ ; if (pdtLeft >= pdtRight) break ; if (*pdtLeft != *pdtRight) { dtTemp = *pdtLeft ; *pdtLeft = *pdtRight ; *pdtRight = dtTemp ; } pdtRight-- ; #ifdef SORT_ZORDER_DOWN while (*pdtLeft > *pdtRight AND pdtLeft < pdtRight) #else while (*pdtLeft < *pdtRight AND pdtLeft < pdtRight) #endif pdtRight-- ; if (pdtLeft >= pdtRight) break ; if (*pdtLeft != *pdtRight) { dtTemp = *pdtLeft ; *pdtLeft = *pdtRight ; *pdtRight = dtTemp ; } pdtLeft++ ; } if (pdtLeft > pdtFirst AND pdtRight < pdtLast) { pdtLeft = pdtFirst ; pdtRight-- ; *++ppdtPeek = pdtLast ; } else do { pdtLeft = pdtLast + 2 ; pdtRight = *ppdtPeek-- ; } while (pdtLeft == pdtRight) ; } while (pdtRight != NULL) ; return 0 ; 快速排序非递归概念源码 }
8
870177103
我提交了才发现++没写 改成while(*pstra++ == *pstrb++)也行
8
870177103
int CompareString (PSTR pstStrA ,PSTR pstStrB){ if (pstStrA==NULL OR pstStrB == NULL) return ERROR; while (*pstStrA == *pstStrB AND *pstStrA != EOS) ; return (int) (*pstStrA - *pstStrB);} @海子IT
8
870177103
好吧,鉴于你的情况,我说几点 1:让你的开发工具对齐代码 2:要不要我给你实现一个strcmp 3:if(a>b)改成if(strcmp(a,b)>0) 4;把指针改成下标 5:好好学习吧
海子IT
哥靠谱点行么。C#哪来指针。而且您这是整型,我要的是字符串,或者你会发话说把int 改成string,可是字符串的比较好像要麻烦,它关系到长度,字码大小。再来点别的提示好吗。您那代码我实行看不懂
返回顶部
顶部