sortthd.h
上传用户:lulishicai
上传日期:2010-03-01
资源大小:13202k
文件大小:2k
源码类别:

Delphi/CppBuilder

开发平台:

C++ Builder

  1. //----------------------------------------------------------------------------
  2. //Borland C++Builder
  3. //Copyright (c) 1987, 1998-2002 Borland International Inc. All Rights Reserved.
  4. //----------------------------------------------------------------------------
  5. //----------------------------------------------------------------------------
  6. #ifndef SortThdH
  7. #define SortThdH
  8. //----------------------------------------------------------------------------
  9. #include <ExtCtrls.hpp>
  10. #include <Graphics.hpp>
  11. #include <Classes.hpp>
  12. #include <System.hpp>
  13. //----------------------------------------------------------------------------
  14. extern void __fastcall PaintLine(TCanvas *Canvas, int i, int len);
  15. //----------------------------------------------------------------------------
  16. class TSortThread : public TThread
  17. {
  18. private: 
  19. TPaintBox *FBox;
  20. int *FSortArray;
  21. int FSize;
  22. int FA;
  23. int FB;
  24. int FI;
  25. int FJ;
  26. void __fastcall DoVisualSwap(void);
  27. protected:
  28. virtual void __fastcall Execute(void);
  29. void __fastcall VisualSwap(int A, int B, int I, int J);
  30. virtual void __fastcall Sort(int *A, const int A_Size) = 0;
  31. public:
  32. __fastcall TSortThread(TPaintBox *Box, int *SortArray, 
  33.     const int SortArray_Size);
  34. };
  35. //----------------------------------------------------------------------------
  36. class TBubbleSort : public TSortThread
  37. {
  38. protected:
  39. virtual void __fastcall Sort(int *A, const int A_Size);
  40. public:
  41. __fastcall TBubbleSort(TPaintBox *Box, int *SortArray, 
  42.     const int SortArray_Size);
  43. };
  44. //----------------------------------------------------------------------------
  45. class TSelectionSort : public TSortThread
  46. {
  47. protected:
  48. virtual void __fastcall Sort(int *A, const int A_Size);
  49. public:
  50. __fastcall TSelectionSort(TPaintBox *Box, int *SortArray, 
  51.     const int SortArray_Size);
  52. };
  53. //----------------------------------------------------------------------------
  54. class TQuickSort : public TSortThread
  55. {
  56. protected:
  57. void __fastcall QuickSort(int *A, const int A_Size, int iLo, 
  58.   int iHi);
  59. virtual void __fastcall Sort(int *A, const int A_Size);
  60. public:
  61. __fastcall TQuickSort(TPaintBox *Box, int *SortArray, 
  62.     const int SortArray_Size);
  63. };
  64. //----------------------------------------------------------------------------
  65. #endif