排序算法

作者:互联网   出处:控件中国网   2014-11-05 19:21:44   阅读:1

排序算法

01 /// <SUMMARY> 

02 /// 冒泡排序 

03 /// </SUMMARY> 

04 public void BubbleSort(int[] sortItems) 

05 { 

06     for (int i = 0; i < sortItems.Length; i++) 

07     { 

08         for (int j = sortItems.Length - 2; j >= i; j--) 

09         { 

10             if (sortItems[j + 1] < sortItems[j]) 

11             { 

12                 //---------  实现交换  --------- 

13                 int temp = sortItems[j]; 

14                 sortItems[j] = sortItems[j + 1]; 

15                 sortItems[j + 1] = temp; 

16                 //---------  实现交换  --------- 

17             } 

18         } 

19     } 

20 }
view sourceprint?01 /// <SUMMARY> 

02 /// 冒泡排序(优化版) 

03 /// </SUMMARY> 

04 public void BubbleSortImproved(int[] sortItems) 

05 { 

06     int i, j, temp; 

07     bool flag = true; 

08     i = 0; 

09     while (i < sortItems.Length && flag) 

10     { 

11         flag = false; 

12         for (j = sortItems.Length - 2; j >= i; j--) 

13         { 

14             if (sortItems[j + 1] < sortItems[j]) 

15             { 

16                 //---------  实现交换  --------- 

17                 temp = sortItems[j]; 

18                 sortItems[j] = sortItems[j + 1]; 

19                 sortItems[j + 1] = temp; 

20                 //---------  实现交换  --------- 

21                 flag = true;    //有数据交换,flag设为true; 

22             } 

23         } 

24         i++; 

25     } 

26 }
view sourceprint?01 /// <SUMMARY> 

02 /// 简单选择排序 

03 /// </SUMMARY> 

04 public void SimpleSelectionSort(int[] sortItems) 

05 { 

06     int i, j, min, temp; 

07     for (i = 0; i < sortItems.Length; i++) 

08     { 

09         min = i; 

10         for (j = i + 1; j < sortItems.Length; j++) 

11         { 

12             if (sortItems[min] > sortItems[j]) 

13             { 

14                 min = j; 

15             } 

16         } 

17         temp = sortItems[min]; 

18         sortItems[min] = sortItems[i]; 

19         sortItems[i] = temp; 

20     } 

21 }
view sourceprint?01 /// <SUMMARY> 

02 /// 直接插入排序 

03 /// </SUMMARY> 

04 public void StraightInsertionSort(int[] sortItems) 

05 { 

06     int i, j, temp; 

07     for (i = 1; i < sortItems.Length; i++) 

08     { 

09         temp = sortItems[i]; 

10         j = i; 

11         while (j > 0 && sortItems[j - 1] > temp) 

12         { 

13             sortItems[j] = sortItems[j - 1]; 

14             j--; 

15         } 

16         sortItems[j] = temp; 

17     } 

18 }
 

Copyright© 2006-2015 ComponentCN.com all rights reserved.重庆磐岩科技有限公司(控件中国网) 版权所有 渝ICP备12000264号 法律顾问:元炳律师事务所
客服软件
live chat