zoukankan      html  css  js  c++  java
  • C#的四种排序算法

    本文介绍了C#的四种排序算法:冒泡排序、选择排序、插入排序和希尔排序

     冒泡排序

    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();

    } }

    }
     

    希尔排序

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

    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();

    } }

    }

  • 相关阅读:
    网络之传输层
    局域网的物理组成
    网络基础
    RAID磁盘阵列
    mount挂载和交换分区swap
    Linux文件系统
    sed命令基础2
    sed命令基础
    LVM基础
    磁盘配额基础
  • 原文地址:https://www.cnblogs.com/whitetiger/p/687291.html
Copyright © 2011-2022 走看看