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

    } }

    }

  • 相关阅读:
    RabbitMQ系列教程之七:RabbitMQ的 C# 客户端 API 的简介
    RabbitMQ系列教程之六:远程过程调用(RPC)
    git无法提交,存在未提交的修改,在重新合并前或者撤销更改
    安装mysql提示3306端口已经被占用解决方案
    区块链学习一基本知识
    超级账本 --- ReadWriteSet的逻辑结构
    解决windows10 里vs2015 附件进程调试提示“此任务要求应用程序有提升的权限”
    Fabric V1 交易的生命周期
    sql 取首次投资的人
    Win10年度更新开发必备:VS2015 Update 3正式版下载汇总
  • 原文地址:https://www.cnblogs.com/whitetiger/p/687291.html
Copyright © 2011-2022 走看看