轉(zhuǎn)帖|其它|編輯:郝浩|2010-07-13 11:27:40.000|閱讀 1022 次
概述:這五種C#排序方法,其實(shí)在其他語(yǔ)言平臺(tái)中也是常見的,因此C#排序方法也可以說是其他語(yǔ)言的排序方法,只不過實(shí)現(xiàn)的語(yǔ)言不同罷了。本文將介紹幾種經(jīng)典的C#排序方法。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
這五種C#排序方法,其實(shí)在其他語(yǔ)言平臺(tái)中也是常見的,因此C#排序方法也可以說是其他語(yǔ)言的排序方法,只不過實(shí)現(xiàn)的語(yǔ)言不同罷了。
在網(wǎng)上看到很多經(jīng)典排序方法,算法分:
1:插入排序 a.直接插入排序 b.希爾排序
2:交換排序 a.冒泡排序 b.快速排序
3:選擇排序 a.直接選擇排序
4:歸并排序 a.歸并排序
5:分配排序 a.箱排序 b.基數(shù)排序
本人常用的三種C#排序方法:1.直接選擇排序 2.直接插入排序 3.冒泡排序;我用C#語(yǔ)言來講解一下。
第一種:冒泡排序
原理:對(duì)一個(gè)數(shù)列,我們將它進(jìn)行輪循和交換,每次輪循出最大數(shù)或最小數(shù)放在對(duì)尾,依次進(jìn)行循環(huán),輪循長(zhǎng)度為-1。
public class EbullitionSorter
{
public void Sort(int[] arr)
{
for(int i=arr.length-1;i>0;i--)
{
for(int j=0;j
{
if(arr[i]
{
int temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
}
}
}
第二種:選擇排序
原理:對(duì)一個(gè)數(shù)列,我們選出最大或最小的數(shù),放在隊(duì)尾,依次循環(huán)下去,循環(huán)長(zhǎng)度為-1;由于沒有冒泡排序那每次都要比較,因此比冒泡排序要快。
public class SelectionSorter
{
private int min;
public void Sort(int[] arr)
{
for(int i=0;i
{
min=i;
for(int j=i+1;j
{
if(arr[j]
{
min=j;
}
}
int temp=arr[min];
arr[min]=arr[i];
arr[i]=temp;
}
}
}
第三種:插入排序
原理:對(duì)一個(gè)數(shù)列,我們從第二個(gè)數(shù)開始,將它與它前面的數(shù)字進(jìn)行比較,每次選出最大
或最小的數(shù)放在隊(duì)首,因而形成一個(gè)有序的隊(duì)列,所以它比選擇排序更快。
public class InsertionSorter
{
public void Sort(int[] arr)
{
for(int i=1;i
{
int temp=arr[i];
int j=i;
while((j>0)&&(arr(j-1)>temp))
{
arr[j]=arr[j-1];
--j;
}
arr[j]=temp;
}
}
}
以上的三種方法是我自己常用的,很簡(jiǎn)單,程序也很容易懂的,對(duì)初學(xué)者很有幫助
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自:網(wǎng)絡(luò)轉(zhuǎn)載