寂寞部屋
- 关注互联网,关注生活
关注互联网,关注生活
2019年五月
« 4月    
 12345
6789101112
13141516171819
20212223242526
2728293031  
  • 日志总数:553 篇
  • 浏览总量:2,435,156 次
  • 运行天数:618 天
  • 建站时间:2017-9-14
  • 最后更新:2019-4-2

C#的四种排序算法

冒泡排序

C#代码
  1. using System;   
  2.   
  3. namespace BubbleSorter    
  4.   
  5. public class BubbleSorter    
  6.   
  7. public void Sort(int [] list)    
  8.   
  9. int i,j,temp;    
  10.   
  11. bool done=false;    
  12.   
  13. j=1;    
  14.   
  15. while((j<list.Length)&&(!done))    
  16.   
  17. { done=true;    
  18.   
  19. for(i=0;i<list.Length-j;i++)    
  20.   
  21. {    
  22.   
  23. if(list[i]>list[i+1])    
  24.   
  25. {    
  26.   
  27. done=false;    
  28.   
  29. temp=list[i];    
  30.   
  31. list[i]=list[i+1];    
  32.   
  33. list[i+1]=temp;    
  34.   
  35. } }    
  36.   
  37. j++; }    
  38.   
  39. } }    
  40.   
  41. public class MainClass    
  42.   
  43. public static void Main()    
  44.   
  45. {    
  46.   
  47. int[] iArrary=new int[]{1,5,13,6,10,55,99,2,87,12,34,75,33,47};    
  48.   
  49. BubbleSorter sh=new BubbleSorter();    
  50.   
  51. sh.Sort(iArrary);    
  52.   
  53. forint m=0;m<iArrary.Length;m++)    
  54.   
  55. Console.Write("{0} ",iArrary[m]);    
  56.   
  57. Console.WriteLine();    
  58.   
  59. } }    
  60.   
  61. }   

 

选择排序  

C#代码
  1. using System;   
  2.   
  3. namespace SelectionSorter    
  4.   
  5. public class SelectionSorter    
  6.   
  7. private int min;    
  8.   
  9. public void Sort(int [] list)    
  10.   
  11. forint i=0;i<list.Length-1;i++)    
  12.   
  13. { min=i;    
  14.   
  15. forint j=i+1;j<list.Length;j++)    
  16.   
  17. if(list[j]<list[min])    
  18.   
  19. min=j;    
  20.   
  21. }    
  22.   
  23. int t=list[min];    
  24.   
  25. list[min]=list[i];    
  26.   
  27. list[i]=t;    
  28.   
  29. } }    
  30.   
  31. }    
  32.   
  33. public class MainClass    
  34.   
  35. public static void Main()    
  36.   
  37. {    
  38.   
  39. int[] iArrary=new int[]{1,5,3,6,10,55,9,2,87,12,34,75,33,47};    
  40.   
  41. SelectionSorter ss=new SelectionSorter();    
  42.   
  43. ss.Sort(iArrary);    
  44.   
  45. forint m=0;m<iArrary.Length;m++)    
  46.   
  47. Console.Write("{0} ",iArrary[m]);    
  48.   
  49. Console.WriteLine();    
  50.   
  51. } }    
  52.   
  53. }   

 

插入排序  

C#代码
  1. using System;   
  2.   
  3. namespace InsertionSorter    
  4.   
  5. public class InsertionSorter    
  6.   
  7. public void Sort(int [] list)    
  8.   
  9. forint i=1;i<list.Length;i++)    
  10.   
  11. int t=list[i];    
  12.   
  13. int j=i;    
  14.   
  15. while((j>0)&&(list[j-1]>t))    
  16.   
  17. { list[j]=list[j-1];    
  18.   
  19. –j;    
  20.   
  21. }    
  22.   
  23. list[j]=t; }    
  24.   
  25. }    
  26.   
  27. }    
  28.   
  29. public class MainClass    
  30.   
  31. public static void Main()    
  32.   
  33. {    
  34.   
  35. int[] iArrary=new int[]{1,13,3,6,10,55,98,2,87,12,34,75,33,47};    
  36.   
  37. InsertionSorter ii=new InsertionSorter();    
  38.   
  39. ii.Sort(iArrary);    
  40.   
  41. forint m=0;m<iArrary.Length;m++)    
  42.   
  43. Console.Write("{0}",iArrary[m]);    
  44.   
  45. Console.WriteLine();    
  46.   
  47. } }    
  48.   
  49. }   

希尔排序

希尔排序是将组分段,进行插入排序. 

C#代码
  1. using System;    
  2.   
  3. namespace ShellSorter    
  4.   
  5. {    
  6.   
  7. public class ShellSorter    
  8.   
  9. {    
  10.   
  11. public void Sort(int [] list)    
  12.   
  13. {    
  14.   
  15. int inc;    
  16.   
  17. for(inc=1;inc<=list.Length/9;inc=3*inc+1);    
  18.   
  19. for(;inc>0;inc/=3)    
  20.   
  21. {    
  22.   
  23. forint i=inc+1;i<=list.Length;i+=inc)    
  24.   
  25. {    
  26.   
  27. int t=list[i-1];    
  28.   
  29. int j=i;    
  30.   
  31. while((j>inc)&&(list[j-inc-1]>t))    
  32.   
  33. {    
  34.   
  35. list[j-1]=list[j-inc-1];    
  36.   
  37. j-=inc;    
  38.   
  39. }    
  40.   
  41. list[j-1]=t;    
  42.   
  43. } }    
  44.   
  45. } }    
  46.   
  47. public class MainClass    
  48.   
  49. public static void Main()    
  50.   
  51. {    
  52.   
  53. int[] iArrary=new int[]{1,5,13,6,10,55,99,2,87,12,34,75,33,47};    
  54.   
  55. ShellSorter sh=new ShellSorter();    
  56.   
  57. sh.Sort(iArrary);    
  58.   
  59. forint m=0;m<iArrary.Length;m++)    
  60.   
  61. Console.Write("{0} ",iArrary[m]);    
  62.   
  63. Console.WriteLine();    
  64.   
  65. } }    
  66.   
  67. }   

 

来源:http://tb.blog.csdn.net/TrackBack.aspx?PostId=1534410

本站原创文章,请勿复制转载
版权声明:除特别注明外,本站所有文章均为原创,未经许可请勿复制、转载
2008-01-14
2,320 views
标签: , ,
暂无评论

发表评论

注意: 评论者允许使用'@user空格'的方式将自己的评论通知另外评论者。例如, ABC是本文的评论者之一,则使用'@ABC '(不包括单引号)将会自动将您的评论发送给ABC。使用'@all ',将会将评论发送给之前所有其它评论者。请务必注意user必须和评论者名相匹配(大小写一致)。