|  | 
 
 发表于 2020-9-5 18:00:01
|
显示全部楼层 
| C#的四种排序算法:冒泡排序(2016-12-29 09:41:31)转载 分类: C# using System;
 using System.Collections.Generic;
 using System.Text;
 namespace SortDemo
 {
 /// <summary>
 /// 冒泡排序
 /// </summary>
 public class BubbleSorter
 {
 public void Sort(int[] list)
 {
 int i, j, temp;
 bool done = false;
 j = 1;
 while((j<list.Length)&&(!done))
 {
 done = true;
 for (i=0;i<list.Length-j;i++)
 {
 if (list[i]>list[i+1])
 {
 done = false;
 temp = list[i];
 list[i] = list[i + 1];
 list[i + 1] = temp;
 }
 }
 j++;
 }
 }
 }
 }
 using System;
 using System.Collections.Generic;
 using System.Text;
 namespace SortDemo
 {
 class Program
 {
 static void Main(string[] args)
 {
 int[] iArrary=new int[]{1,5,13,6,10,55,99,2,87,12,34,75,33,47};
 //冒泡排序
 BubbleSorter bs=new BubbleSorter();
 bs.Sort(iArrary);
 for(int m=0;m<iArrary.Length;m++)
 Console.Write("{0} ",iArrary[m]);
 Console.WriteLine();
 }
 }
 }
 
 
 
 C#的四种排序算法:选择排序
 using System;
 using System.Collections.Generic;
 using System.Text;
 namespace SortDemo
 {
 /// <summary>
 /// 选择排序
 /// </summary>
 class SelectionSorter
 {
 private int min;
 public void Sort(int [] list)
 {
 for(int i=0;i<list.Length-1;i++)
 {
 min=i;
 for(int j=i+1;j<list.Length;j++)
 {
 if(list[j]<list[min])
 min=j;
 }
 int t=list[min];
 list[min]=list[i];
 list[i]=t;
 }
 }
 }
 }
 using System;
 using System.Collections.Generic;
 using System.Text;
 namespace SortDemo
 {
 class Program
 {
 static void Main(string[] args)
 {
 int[] iArrary=new int[]{1,5,13,6,10,55,99,2,87,12,34,75,33,47};
 //选择排序
 //SelectionSorter ss = new SelectionSorter();
 //ss.Sort(iArrary);
 //
 for(int m=0;m<iArrary.Length;m++)
 Console.Write("{0} ",iArrary[m]);
 Console.WriteLine();
 }
 }
 }
 
 
 
 
 
 C#的四种排序算法:插入排序
 using System;
 using System.Collections.Generic;
 using System.Text;
 namespace SortDemo
 {
 /// <summary>
 /// 插入排序
 /// </summary>
 class InsertionSorter
 {
 public void Sort(int [] list)
 {
 for(int i=1;i<list.Length;i++)
 {
 int t=list[i];
 int j=i;
 while((j>0)&&(list[j-1]>t))
 {
 list[j]=list[j-1];
 --j;
 }
 list[j]=t;
 }
 }
 }
 }
 using System;
 using System.Collections.Generic;
 using System.Text;
 namespace SortDemo
 {
 class Program
 {
 static void Main(string[] args)
 {
 int[] iArrary=new int[]{1,5,13,6,10,55,99,2,87,12,34,75,33,47};
 //插入排序
 InsertionSorter ins = new InsertionSorter();
 ins.Sort(iArrary);
 for(int m=0;m<iArrary.Length;m++)
 Console.Write("{0} ",iArrary[m]);
 Console.WriteLine();
 }
 }
 }
 
 
 
 C#的四种排序算法:希尔排序(2016-12-29 10:24:18)转载 分类: C#
 using System;
 using System.Collections.Generic;
 using System.Text;
 namespace SortDemo
 {
 /// <summary>
 /// 希尔排序,希尔排序是将组分段,进行插入排序.
 /// </summary>
 class ShellSorter
 {
 public void Sort(int [] list)
 {
 int inc;
 for(inc=1;inc<=list.Length/9;inc=3*inc+1);
 for(;inc>0;inc/=3)
 {
 for(int i=inc+1;i<=list.Length;i+=inc)
 {
 int t=list[i-1];
 int j=i;
 while((j>inc)&&(list[j-inc-1]>t))
 {
 list[j-1]=list[j-inc-1];
 j-=inc;
 }
 list[j-1]=t;
 }
 }
 }
 }
 }
 using System;
 using System.Collections.Generic;
 using System.Text;
 namespace SortDemo
 {
 class Program
 {
 static void Main(string[] args)
 {
 int[] iArrary=new int[]{1,5,13,6,10,55,99,2,87,12,34,75,33,47};
 //希尔排序
 ShellSorter shs = new ShellSorter();
 shs.Sort(iArrary);
 //显示
 for(int m=0;m<iArrary.Length;m++)
 Console.Write("{0} ",iArrary[m]);
 Console.WriteLine();
 }
 }
 }
 
 | 
 |