C#排序算法大全

    技术2022-05-11  20

    一、冒泡排序(Bubble) using System; namespace BubbleSorter { ?public class BubbleSorter ?{ ??public void Sort(int[] list) ??{ ???int i,j,temp; ???bool done=false; ???j=1; ???while((j???{ ????done=true; ????for(i=0;i????{ ?????if(list[i]>list[i+1]) ?????{ ?????done=false; ?????temp=list[i]; ?????list[i]=list[i+1]; ?????list[i+1]=temp; ?????} ????} ???j++; ???} ??} ?} ?public class MainClass ?{ ??public static void Main() ??{ ???int[] iArrary=new int[]{1,5,13,6,10,55,99,2,87,12,34,75,33,47}; ???BubbleSorter sh=new BubbleSorter(); ???sh.Sort(iArrary); ???for(int m=0;m???Console.Write("{0} ",iArrary[m]); ???Console.WriteLine(); ??} ?} } 二、选择排序(Selection) using System; namespace SelectionSorter { ?public class SelectionSorter ?{ ??private int min; ??public void Sort(int [] list) ??{ ???for(int i=0;i???{ ???min=i; ????for(int j=i+1;j????{ ????if(list[j]????min=j; ????} ???int t=list[min]; ???list[min]=list[i]; ???list[i]=t; ???} ??} ?} ?public class MainClass ?{ ??public static void Main() ??{ ???int[] iArrary = new int[]{1,5,3,6,10,55,9,2,87,12,34,75,33,47}; ???SelectionSorter ss=new SelectionSorter(); ???ss.Sort(iArrary); ???for (int m=0;m???Console.Write("{0} ",iArrary[m]); ???Console.WriteLine(); ??} ?} } using System; namespace InsertionSorter { ?public class InsertionSorter ?{ ??public void Sort(int [] list) ??{ ???for(int i=1;i???{ ???int t=list[i]; ???int j=i; ????while((j>0)&&(list[j-1]>t)) ????{ ????list[j]=list[j-1]; ????--j; ????} ???list[j]=t; ???} ??} ?} ?public class MainClass ?{ ??public static void Main() ??{ ???int[] iArrary=new int[]{1,13,3,6,10,55,98,2,87,12,34,75,33,47}; ???InsertionSorter ii=new InsertionSorter(); ???ii.Sort(iArrary); ???for(int m=0;m???Console.Write("{0}",iArrary[m]); ???Console.WriteLine(); ??} ?} } 四、希尔排序(ShellSorter) using System; namespace ShellSorter { ?public 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; ????} ???} ??} ?} ?public class MainClass ?{ ??public static void Main() ??{ ???int[] iArrary=new int[]{1,5,13,6,10,55,99,2,87,12,34,75,33,47}; ???ShellSorter sh=new ShellSorter(); ???sh.Sort(iArrary); ???for(int m=0;m???Console.Write("{0} ",iArrary[m]); ???Console.WriteLine(); ??} ?} }?

    最新回复(0)