您的位置:威尼斯官方网站 > 威尼斯正规官网 > 选择排序

选择排序

发布时间:2020-01-04 13:44编辑:威尼斯正规官网浏览(93)

    本文介绍了C#的二种排序算法:冒泡排序、选拔排序、插入排序和Hill排序

     冒泡排序

    using System;

    namespace BubbleSorter

    { 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++; }

    } }

    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<iArrary.Length;m++)

    Console.Write("{0} ",iArrary[m]);

    Console.WriteLine();

    } }

    }   

     

    慎选排序

    using System;

    namespace SelectionSorter

    { public 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;

    } }

    }

    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<iArrary.Length;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<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; }

    }

    }

    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<iArrary.Length;m++)

    Console.Write("{0}",iArrary[m]);

    Console.WriteLine();

    } }

    }  

     

    Hill排序

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

    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<iArrary.Length;m++)

    Console.Write("{0} ",iArrary[m]);

    Console.WriteLine();

    } }

    }  

      <> <>

    本文由威尼斯官方网站发布于威尼斯正规官网,转载请注明出处:选择排序

    关键词:

上一篇:只要您要在C/C++程序里处理XML如何是好呢

下一篇:没有了