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

講述VB.NET QuickSort函數(shù)

開發(fā) 后端
這里介紹VB.NET QuickSort函數(shù),包括介紹調(diào)用 Partition() 函數(shù)將數(shù)組分成兩部分,其中一部分包含 Pivot 值之前的所有字符串,另一部分包含 Pivot 值之后的所有字符串。然后,它調(diào)用自身來對(duì)每個(gè)部分進(jìn)行排序。

VB.NET經(jīng)過長(zhǎng)時(shí)間的發(fā)展,很多用戶都很了解VB.NET QuickSort函數(shù)了,這里我發(fā)表一下個(gè)人理解,和大家討論討論。首先創(chuàng)建一個(gè)函數(shù)來在字符串?dāng)?shù)組中運(yùn)行VB.NET QuickSort函數(shù)。我們將此函數(shù)放到應(yīng)用程序類 QuickSortApp 之中。

修改源代碼

更改 C# 源文件 (class1.cs),如下面以斜體突出顯示的 代碼所示。其他的差異(如類名)可忽略不計(jì)。

  1. // Import namespaces  
  2. using System;  
  3. using System.Collections;  
  4. using System.IO;  
  5. // Declare namespace  
  6. namespace MsdnAA  
  7. {  
  8.     // Declare application class  
  9.     class QuickSortApp  
  10.     {  
  11.         // Application initialization  
  12.         static void Main (string[] szArgs)  
  13.         {  
  14.             ... ... ...  
  15.             // Pass to QuickSort function  
  16.             QuickSort (szContents, 0, szContents.Count - 1);  
  17.             ... ... ...  
  18.         }  
  19.         // QuickSort implementation  
  20.         static void QuickSort (ArrayList szArray, int nLower, int nUpper)  
  21.         {  
  22.             // Check for non-base case  
  23.             if (nLower < nUpper)  
  24.             {  
  25.                 // Split and sort partitions  
  26.                 int nSplit = Partition (szArray, nLower, nUpper);  
  27.                 QuickSort (szArray, nLower, nSplit - 1);  
  28.                 QuickSort (szArray, nSplit + 1, nUpper);  
  29.             }  
  30.         }  
  31.         // QuickSort partition implementation  
  32.         static int Partition (ArrayList szArray, int nLower, int nUpper)  
  33.         {  
  34.             // Pivot with first element  
  35.             int nLeft = nLower + 1;  
  36.             string szPivot = (string) szArray[nLower];  
  37.             int nRight = nUpper;  
  38.             // Partition array elements  
  39.             string szSwap;  
  40.             while (nLeft <= nRight)  
  41.             {  
  42.                 // Find item out of place  
  43.                 while (nLeft <= nRight)  
  44.                 {  
  45.                     if (((string) szArray[nLeft]).CompareTo (szPivot) > 0)  
  46.                         break;  
  47.                     nLeftnLeft = nLeft + 1;  
  48.                 }  
  49.                 while (nLeft <= nRight)  
  50.                 {  
  51.                     if (((string) szArray[nRight]).CompareTo (szPivot) <= 0)  
  52.                         break;  
  53.                     nRightnRight = nRight - 1;  
  54.                 }  
  55.                 // Swap values if necessary  
  56.                 if (nLeft < nRight)  
  57.                 {  
  58.                     szSwap = (string) szArray[nLeft];  
  59.                     szArray[nLeft] = szArray[nRight];  
  60.                     szArray[nRight] = szSwap;  
  61.                     nLeftnLeft = nLeft + 1;  
  62.                     nRightnRight = nRight - 1;  
  63.                 }  
  64.             }  
  65.             // Move pivot element  
  66.             szSwap = (string) szArray[nLower];  
  67.             szArray[nLower] = szArray[nRight];  
  68.             szArray[nRight] = szSwap;  
  69.             return nRight;  
  70.         }  
  71.     }  
  72. }  

VB.NET QuickSort函數(shù)

這個(gè)函數(shù)需要三個(gè)參數(shù):對(duì)數(shù)組的引用、下界和上界。它調(diào)用 Partition() 函數(shù)將數(shù)組分成兩部分,其中一部分包含 Pivot 值之前的所有字符串,另一部分包含 Pivot 值之后的所有字符串。然后,它調(diào)用自身來對(duì)每個(gè)部分進(jìn)行排序。

上面修改中的注釋應(yīng)該說明了每個(gè)代碼塊的作用。唯一的新概念就是 CompareTo() 方法的使用,該方法是 String 類的成員,并且應(yīng)該是自說明的。

運(yùn)行 QuickSort 應(yīng)用程序

這一步完成 QuickSort C# 示例應(yīng)用程序?,F(xiàn)在,可以構(gòu)建項(xiàng)目并運(yùn)行應(yīng)用程序。需要提供一個(gè)示例文本文件,以供其進(jìn)行排序。將該文件放在與 EXE 文件相同的目錄中。

QuickSort C# 示例應(yīng)用程序


程序輸出

下面是已完成的 QuickSort C# .NET 示例應(yīng)用程序的輸出。

QuickSort C# .NET 示例應(yīng)用程序

【編輯推薦】

  1. 分析VB QuickSort應(yīng)用程序
  2. 如何掌握強(qiáng)大的VB.NET ReadLine()方法
  3. 講述強(qiáng)大的VB.NET Web Forms,使用起來卻如此簡(jiǎn)單
  4. 兩步就可以掌握VB使用ArrayList類
  5. VB.NET應(yīng)用程序的入門指南
責(zé)任編輯:佚名 來源: cnbeta
相關(guān)推薦

2009-10-14 17:08:44

VB.NET使用Fil

2009-10-16 13:26:53

VB.NET Exce

2009-10-12 16:39:59

OracleTransVB.NET使用

2009-10-19 08:55:22

VB.NET多重繼承

2009-10-13 17:03:55

VB.NET面向?qū)ο?/a>

2009-11-02 15:45:03

VB.NET IEnu

2009-10-16 09:35:24

VB.NET制作透明窗

2009-10-15 16:39:00

VB.NET讀取INI

2009-10-15 11:11:08

VB.NET Text

2009-10-10 16:44:52

VB.NET開發(fā)控件

2009-10-23 13:22:25

VB.NET實(shí)現(xiàn)拖動(dòng)圖

2009-10-14 11:15:06

VB.NET Grou

2009-10-27 11:39:03

VB.NET事件處理程

2009-10-22 09:20:46

VB.NET Proc

2009-10-26 18:11:47

VB.NET調(diào)用Exc

2009-10-21 18:28:48

VB.NET表間拖放

2009-10-29 09:57:16

VB.NET實(shí)現(xiàn)數(shù)據(jù)綁

2009-11-03 17:31:01

VB.NET窗體

2010-01-15 13:30:50

VB.NET Prog

2009-10-26 19:22:29

VB.NET使用Log
點(diǎn)贊
收藏

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