幾種常用的C#排序方法簡介
這五種C#排序方法,其實在其他語言平臺中也是常見的,因此C#排序方法也可以說是其他語言的排序方法,只不過實現(xiàn)的語言不同罷了。
在網上看到很多經典排序方法,算法分:
1:插入排序 a.直接插入排序 b.希爾排序
2:交換排序 a.冒泡排序 b.快速排序
3:選擇排序 a.直接選擇排序
4:歸并排序 a.歸并排序
5:分配排序 a.箱排序 b.基數排序
本人常用的三種C#排序方法:1.直接選擇排序 2.直接插入排序 3.冒泡排序;我用C#語言來講解一下。
***種:冒泡排序
原理:對一個數列,我們將它進行輪循和交換,每次輪循出***數或最小數放在對尾,依次進行循環(huán),輪循長度為-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;
- }
- }
- }
- }
- }
第二種:選擇排序
原理:對一個數列,我們選出***或最小的數,放在隊尾,依次循環(huán)下去,循環(huán)長度為-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;
- }
- }
- }
第三種:插入排序
原理:對一個數列,我們從第二個數開始,將它與它前面的數字進行比較,每次選出***
或最小的數放在隊首,因而形成一個有序的隊列,所以它比選擇排序更快。
- 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;
- }
- }
- }
以上的三種方法是我自己常用的,很簡單,程序也很容易懂的,對初學者很有幫助。
很多人學過面向對象思想,下次就寫下怎么對對象排序。
以上有錯的地方請諒解?。?/P>
【編輯推薦】