用委託泛型實現通用型別的氣泡排序

2021-09-07 02:42:11 字數 1666 閱讀 3947

一、普通氣泡排序

氣泡排序想必大家都不陌生,原理也就不介紹了,直接看**吧

(1)第一種

1

static

void sort(int

unsorted)213

}14}15 }

(2)第二種(與第一種並沒有本質的區別,只不過加了乙個標識位,當檢索一遍發現沒有交換時便停止迴圈,可以稍微提高下效率吧) 

1

static

void main(string

args)2;

4sort(array);

5foreach (var item in

array)69

}1011//

從小到大排序

12static

void sort(int

sortarray)

1327}28

29 } while

(ischange);30}

31

二、通用型別氣泡排序這裡我們對乙個hero類進行排序(根據hero中的attack屬性),compare方法由hero類本身實現,方便委託

hero類如下:

1

public

class

hero24

int attack

5float speed

6 hero(string name,int attack,float speed=10f)711

12//

h1的attack大於h2的attack返回true 否則返回false

13public

static

bool

compare(hero h1, hero h2)

1418 }

排序方法為sort(t sortarray,funccompare),比較採用func委託

具體實現如下:

1

static

void sort(t sortarray,funcbool>compare)216

}1718 } while

(ischange);

19 }

1

static

void main(string

args)2;

12 sort(heroarray, hero.compare);

13foreach (var item in

heroarray)

1417

console.readkey();

18 }

其中hero類中重寫了tostring()方法方便輸出

public

override

string

tostring()

輸出結果如下:

用java實現泛型程式設計的單鏈表

以下程式實現了單鏈表的基本操作 初始化 頭插 尾插 列印 刪除 單鏈表的節點結構設計 class slinked public t getdata public void setdata t data public slinkedgetnext public void setnext slinked...

模仿qsort的功能實現乙個通用的氣泡排序。

我前面寫過一篇文章,使用qsort函式排序各種型別的資料 qsort的函式原型 void qsort void base,size t num,size t width,int cdecl compare const void const void 這裡以公升序為例子 氣泡排序的思路很簡單,遍歷一組...

模仿qsort的功能實現乙個通用的氣泡排序

qsort的標準呼叫方法 void qsort void base,size t num,size t size,int compar const void,const void 其中 base代表傳入的陣列,num代表陣列長度 size代表陣列內乙個元素所佔的位元組數 因為base的型別是void...