本文共 1616 字,大约阅读时间需要 5 分钟。
C#几种常用的排序算法:
1 冒泡排序法
1 冒泡排序法 #region 冒泡排序法 2public void Sort(int[] list) 3{ 4 long begintime = System.DateTime.Now.Second*1000+System.DateTime.Now.Millisecond; 5 WriteLine(begintime); 6 int j,temp; 7 j= 1; 8 while((j<list.Length)) 9 { 10 for(int i=0;i<list.Length -j;i++)11 { 12 if(list[i]<list[i+1])13 { 14 temp = list[i];15 list[i] = list[i+1];16 list[i+1] = temp;17 }18 }19 j++;20 }21 long endtime = System.DateTime.Now.Second*1000+System.DateTime.Now.Millisecond;22 WriteLine(endtime);23 WriteLine(endtime-begintime);24}25#endregion 2 选择排序法
1 选择排序法 #region 选择排序法 2public void SortChoice(int [] list) 3{ 4 long begintime = System.DateTime.Now.Millisecond; 5 int min; 6 for(int i=0;i<list.Length-1;i++) 7 { 8 min=i; 9 for(int j=i+1;j<list.Length;j++)10 { 11 if(list[j]<list[min])12 min=j;13 }14 int t=list[min];15 list[min]=list[i];16 list[i]=t;17 }18 long endtime = System.DateTime.Now.Millisecond;19 WriteLine(begintime);20 WriteLine(endtime);21 WriteLine(endtime-begintime);22}23#endregion 3 插入排序法
1 插入排序法 #region 插入排序法 2public void SortInsert(int [] list) 3{ 4 for(int i=1;i<list.Length;i++) 5 { 6 int t=list[i]; 7 int j=i; 8 while((j>0)&&(list[j-1]<t)) 9 { 10 list[j]=list[j-1];11 --j;12 }13 list[j]=t;14 }15}16#endregion 4 希尔排序法
1 希尔排序法 #region 希尔排序法 2public void SortShell(int [] list) 3{ 4 int inc; 5 for(inc=1;inc<=list.Length/9;inc=3*inc+1); 6 for(;inc>0;inc/=3) 7 { 8 for(int i=inc+1;i<=list.Length;i+=inc) 9 { 10 int t=list[i-1];11 int j=i;12 while((j>inc)&&(list[j-inc-1]>t))13 { 14 list[j-1]=list[j-inc-1];15 j-=inc;16 }17 list[j-1]=t;18 }19 }20}21#endregion