#include <afx.h> #include <iostream.h> #include <afxcoll.h> class CSortStringArray : public CStringArray { public: void Sort(); private: BOOL CompareAndSwap(int pos); }; void CSortStringArray::Sort() { BOOL bNotDone = TRUE; while (bNotDone) { bNotDone = FALSE; for(int pos = 0;pos < GetUpperBound();pos++) bNotDone |= CompareAndSwap(pos); } } BOOL CSortStringArray::CompareAndSwap(int pos) { CString temp; int posFirst = pos; int posNext = pos + 1; if (GetAt(posFirst).CompareNoCase(GetAt(posNext)) > 0) { temp = GetAt(posFirst); SetAt(posFirst, GetAt(posNext)); SetAt(posNext, temp); return TRUE; } return FALSE; } void main() { CSortStringArray sortArray; sortArray.Add(CString("Zebra")); sortArray.Add(CString("Bat")); sortArray.Add(CString("Apple")); sortArray.Add(CString("Mango")); for (int i = 0; i <= sortArray.GetUpperBound(); i++) cout << sortArray[i] << endl; sortArray.Sort(); cout << endl; for (int j = 0; j <= sortArray.GetUpperBound(); j++) cout << sortArray[j] << endl; }
2014년 6월 19일 목요일
[미완] CString Sort
피드 구독하기:
댓글 (Atom)
댓글 없음:
댓글 쓰기