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

    } }



  • 相关阅读:
    软件系统的稳定性
    项目从.net 2.0 升级到。.net 4.0项目以后发现网站运行十分缓慢
    学习英语小助手(阅读粘贴的英文,使用MVVM)
    如何在IIS6,7中部署ASP.NET网站
    基于 IOCP 的通用异步 Windows Socket TCP 高性能服务端组件的设计与实现
    面向对象软件设计原则—— 软件实体的设计原则
    Django实战
    聊聊豆瓣阅读kindle版
    多线程的基本概念
    nopCommerce的源代码结构和架构
  • 原文地址:https://www.cnblogs.com/88223100/p/1154964.html
Copyright © 2020-2023  润新知