自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

QuickSort C# .NET剖析

開發(fā) 后端
這里介紹QuickSort C# .NET,本文旨在幫助您用 Visual Studio 構(gòu)建一個簡單的 C# 項目。它無法進行全面的介紹。我們鼓勵您查詢關(guān)于 C# 和 .NET 的其他資源,以便更多地學習這些技術(shù)。

本文向大家介紹QuickSort C# .NET,可能好多人還不知道QuickSort C# .NET,沒有關(guān)系,看完本文你肯定有不少收獲,希望本文能教會你更多東西。

本文旨在幫助您用 Visual Studio 構(gòu)建一個簡單的 C# 項目。它無法進行全面的介紹。我們鼓勵您查詢關(guān)于 C# 和 .NET 的其他資源,以便更多地學習這些技術(shù)。在完成本教程之后,您至少有了一個可用的項目,在您研究 Visual C# 時,可以從修改此這些代碼開始。

下面是 QuickSort C# .NET 示例應(yīng)用程序的完整源代碼。您可以復制、使用和分發(fā)這些代碼(無版權(quán)費)。注意,這些源代碼以"原樣"提供并且不作任何保證。

  1. //QuickSort C# .NET Sample Application  
  2. //Copyright 2001-2002 Microsoft Corporation. All rights reserved.  
  3. //  
  4. //MSDN ACADEMIC ALLIANCE [http://www.msdn.microsoft.com/academic]  
  5. //This sample is part of a vast collection of resources we developed for  
  6. //faculty members in K-12 and higher education. Visit the MSDN AA web site for more!  
  7. //The source code is provided "as is" without warranty.  
  8. //  
  9. // Import namespaces  
  10. using System;  
  11. using System.Collections;  
  12. using System.IO;  
  13. // Declare namespace  
  14. namespace MsdnAA  
  15. {  
  16. // Declare application class  
  17. class QuickSortApp  
  18. {  
  19. // Application initialization  
  20. static void Main (string[] szArgs)  
  21. {  
  22. // Print startup banner  
  23. Console.WriteLine ("\nQuickSort C#.NET Sample Application");  
  24. Console.WriteLine ("Copyright (c)2001-2002 Microsoft Corporation. All rights reserved.\n");  
  25. Console.WriteLine ("MSDN ACADEMIC ALLIANCE [http://www.msdnaa.net/]\n");  
  26. // Describe program function  
  27. Console.WriteLine ("This example demonstrates the QuickSort algorithm by reading an input file,");  
  28. Console.WriteLine ("sorting its contents, and writing them to a new file.\n");  
  29. // Prompt user for filenames  
  30. Console.Write ("Source: ");  
  31. string szSrcFile = Console.ReadLine ();  
  32. Console.Write ("Output: ");  
  33. string szDestFile = Console.ReadLine ();  
  34. // Read contents of source file  
  35. string szSrcLine;  
  36. ArrayList szContents = new ArrayList ();  
  37. FileStream fsInput = new FileStream (szSrcFile, FileMode.Open, FileAccess.Read);  
  38. StreamReader srInput = new StreamReader (fsInput);  
  39. while ((szSrcLine = srInput.ReadLine ()) != null)  
  40. {  
  41. // Append to array  
  42. szContents.Add (szSrcLine);  
  43. }  
  44. srInput.Close ();  
  45. fsInput.Close ();  
  46. // Pass to QuickSort function  
  47. QuickSort (szContents, 0, szContents.Count - 1);  
  48. // Write sorted lines  
  49. FileStream fsOutput = new FileStream (szDestFile, FileMode.Create, FileAccess.Write);  
  50. StreamWriter srOutput = new StreamWriter (fsOutput);  
  51. for (int nIndex = 0; nIndex < szContents.Count; nIndex++)  
  52. {  
  53. // Write line to output file  
  54. srOutput.WriteLine (szContents[nIndex]);  
  55. }  
  56. srOutput.Close ();  
  57. fsOutput.Close ();  
  58. // Report program success  
  59. Console.WriteLine ("\nThe sorted lines have been written to the output file.\n\n");  
  60. }  
  61. // QuickSort implementation  
  62. private static void QuickSort (ArrayList szArray, int nLower, int nUpper)  
  63. {  
  64. // Check for non-base case  
  65. if (nLower < nUpper)  
  66. {  
  67. // Split and sort partitions  
  68. int nSplit = Partition (szArray, nLower, nUpper);  
  69. QuickSort (szArray, nLower, nSplit - 1);  
  70. QuickSort (szArray, nSplit + 1, nUpper);  
  71. }  
  72. }  
  73. // QuickSort partition implementation  
  74. private static int Partition (ArrayList szArray, int nLower, int nUpper)  
  75. {  
  76. // Pivot with first element  
  77. int nLeft = nLower + 1;  
  78. string szPivot = (string) szArray[nLower];  
  79. int nRight = nUpper;  
  80. // Partition array elements  
  81. string szSwap;  
  82. while (nLeft <= nRight)  
  83. {  
  84. // Find item out of place  
  85. while (nLeft <= nRight && ((string) szArray[nLeft]).CompareTo (szPivot) <= 0)  
  86. nLeftnLeft = nLeft + 1;  
  87. while (nLeft <= nRight && ((string) szArray[nRight]).CompareTo (szPivot) > 0)  
  88. nRightnRight = nRight - 1;  
  89. // Swap values if necessary  
  90. if (nLeft < nRight)  
  91. {  
  92. szSwap = (string) szArray[nLeft];  
  93. szArray[nLeft] = szArray[nRight];  
  94. szArray[nRight] = szSwap;  
  95. nLeftnLeft = nLeft + 1;  
  96. nRightnRight = nRight - 1;  
  97. }  
  98. }  
  99. // Move pivot element  
  100. szSwap = (string) szArray[nLower];  
  101. szArray[nLower] = szArray[nRight];  
  102. szArray[nRight] = szSwap;  
  103. return nRight;  
  104. }  
  105. }  

關(guān)于 QuickSort C# .NET為了演示 QuickSort Visual C# .NET 示例應(yīng)用程序?qū)嶋H是如何運行的,我們提供了編譯好的可執(zhí)行文件。您可以通過編譯這些項目文件來創(chuàng)建自己的可執(zhí)行文件。單擊 Quicksort_Visual_CSharp_.NET.exe,下載源代碼項目文件和可執(zhí)行文件包。

使用應(yīng)用程序啟動 Command Prompt(從"開始"菜單運行"cmd.exe")。使用 CD 命令將目錄更改為可執(zhí)行文件所在的目錄。然后運行"quicksort.exe".

程序?qū)⑻崾灸峁┹斎牒洼敵鑫募拿Q。任何包含多行的文本文件均可使用。如果需要,可以使用記事本來創(chuàng)建一個此類文件。然后,該程序?qū)斎胛募膬?nèi)容進行排序,并且將其寫入輸出文件。

示例程序輸出下面是來自此 QuickSort C# .NET 應(yīng)用程序的一個實例的輸出。此示例演示了 QuickSort 算法,方法是讀取輸入文件、對文件的內(nèi)容進行排序,然后將其寫入新的文件。

【編輯推薦】

  1. C# 3.0編譯器簡單介紹
  2. C#使用函數(shù)重載學習筆記
  3. Visual C#對數(shù)據(jù)庫處理概述
  4. C#具有隱式類型聲明描述
  5. C#使用SharpZipLib分析
責任編輯:佚名 來源: 博客園
相關(guān)推薦

2009-09-07 14:29:52

C# ServiceC

2009-08-27 17:14:36

C# Socket

2009-10-21 10:45:50

VB.NET Quic

2009-09-01 11:04:59

C#調(diào)用擴展方法

2009-09-11 11:09:36

C#引用類型

2009-09-02 18:14:33

C# WebClien

2009-09-11 11:17:04

C#引用類型

2009-08-27 16:29:18

C#動態(tài)編譯

2009-08-28 10:44:46

C#字符數(shù)組轉(zhuǎn)換

2009-09-18 10:00:17

C#數(shù)組操作

2009-08-31 17:26:32

C#異常處理

2009-08-27 17:51:34

C#匿名方法

2009-09-03 16:58:49

C#內(nèi)存管理

2009-09-02 13:36:58

C#實現(xiàn)多個接口

2009-08-28 15:32:39

C#利用WMI獲取數(shù)據(jù)

2009-08-28 11:16:51

C#日期型數(shù)

2009-09-04 17:56:22

C#刪除數(shù)據(jù)

2009-08-31 15:39:11

C#編寫操作TreeV

2009-09-02 17:14:28

C#修飾符

2009-09-09 14:04:18

C# XML解析XML解析方法
點贊
收藏

51CTO技術(shù)棧公眾號