宝峰科技

 找回密码
 注册

QQ登录

只需一步,快速开始

智能终端设备维修查询系统注册会员邮箱认证须知!
查看: 7834|回复: 0

[原创] C#排序算法大全

[复制链接]
  • TA的每日心情
    无聊
    2012-4-6 11:13
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    编程学习者 发表于 2012-3-13 23:33:16 | 显示全部楼层 |阅读模式

    欢迎您注册加入!这里有您将更精采!

    您需要 登录 才可以下载或查看,没有账号?注册

    x
    今天我们一起了解一下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();
      }
      }
      }


    选择排序:

      以下是用了C#开发出选择排序算法。希望能为C#语言的学习者带来一些益处。




      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();
      }
      }
      }
     插入排序



      插入排序算法。对想提高C#语言编程能力的朋友,我们可以互相探讨一下。




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


     希尔排序



      希尔排序是将组分段,进行插入排序. 对想提高C#语言编程能力的朋友,我们可以互相探讨一下。




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


    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    免责声明

    本站中所有被研究的素材与信息全部来源于互联网,版权争议与本站无关。本站所发布的任何软件编程开发或软件的逆向分析文章、逆向分析视频、补丁、注册机和注册信息,仅限用于学习和研究软件安全的目的。全体用户必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。学习编程开发技术或逆向分析技术是为了更好的完善软件可能存在的不安全因素,提升软件安全意识。所以您如果喜欢某程序,请购买注册正版软件,获得正版优质服务!不得将上述内容私自传播、销售或者用于商业用途!否则,一切后果请用户自负!

    QQ|Archiver|手机版|小黑屋|联系我们|宝峰科技 ( 滇公网安备 53050202000040号 | 滇ICP备09007156号-2 )

    Copyright © 2001-2023 Discuz! Team. GMT+8, 2025-5-7 07:36 , File On Powered by Discuz! X3.49

    快速回复 返回顶部 返回列表