SortStringArray.cpp
上传用户:tjfeida
上传日期:2013-03-10
资源大小:1917k
文件大小:2k
源码类别:

Ftp客户端

开发平台:

Visual C++

  1. // SortStringArray.cpp: Implementierung der Klasse CSortStringArray.
  2. //
  3. //////////////////////////////////////////////////////////////////////
  4. #include "stdafx.h"
  5. #include "SortStringArray.h"
  6. #ifdef _DEBUG
  7. #undef THIS_FILE
  8. static char THIS_FILE[]=__FILE__;
  9. #define new DEBUG_NEW
  10. #endif
  11. //////////////////////////////////////////////////////////////////////
  12. // Konstruktion/Destruktion
  13. //////////////////////////////////////////////////////////////////////
  14. //排序算法使用冒泡排序
  15. /****************************************************
  16. ** @Description
  17. **
  18. **
  19. ** @Parameter
  20. **
  21. **
  22. ** @Return:
  23. ** @Author: unknow
  24. ** e-mail: tablejiang@21cn.com
  25. ** @Date: 2001 3 26
  26. ****************************************************/
  27. void CSortStringArray::Sort()
  28. {
  29. BOOL bNotDone = TRUE;   
  30. while (bNotDone)   
  31. {
  32. bNotDone = FALSE;
  33. for(int pos = 0;pos < GetUpperBound();pos++)
  34. bNotDone |= CompareAndSwap(pos);   
  35. }
  36. }
  37. /****************************************************
  38. ** @Description
  39. **
  40. **
  41. ** @Parameter
  42. **
  43. **
  44. ** @Return:
  45. ** @Author: unknow
  46. ** e-mail: tablejiang@21cn.com
  47. ** @Date: 2001 3 26
  48. ****************************************************/
  49. BOOL CSortStringArray::CompareAndSwap( int pos )
  50. {
  51.    CString temp;   
  52.    int posFirst = pos;   
  53.    int posNext = pos + 1;
  54.    if (GetAt(posFirst).CompareNoCase(GetAt(posNext)) > 0)   
  55.    {
  56.       temp = GetAt(posFirst);      
  57.   SetAt(posFirst, GetAt(posNext));
  58.       SetAt(posNext, temp);      
  59.   return TRUE;   
  60.    }   
  61.    
  62.    return FALSE;
  63. }