zoukankan      html  css  js  c++  java
  • 转贴:C#排序算法大全

    C#排序算法大全 
    土人 
    2004-7-21 
    一、冒泡排序(Bubble)

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

    二、选择排序(Selection)

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

    三、插入排序(InsertionSorter)

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

    四、希尔排序(ShellSorter)

    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();
      }
     }
    }  
  • 相关阅读:
    java_oop_方法2
    POJ 3276 Face The Right Way(反转)
    POJ 3276 Face The Right Way(反转)
    POJ 2566 Bound Found(尺取法,前缀和)
    POJ 2566 Bound Found(尺取法,前缀和)
    POJ 3320 Jessica's Reading Problem(尺取法)
    POJ 3320 Jessica's Reading Problem(尺取法)
    POJ 3061 Subsequence(尺取法)
    POJ 3061 Subsequence(尺取法)
    HDU 1222 Wolf and Rabbit(欧几里得)
  • 原文地址:https://www.cnblogs.com/zhuor/p/223177.html
Copyright © 2011-2022 走看看