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 应用程序中绑定 Bean 和数据
    JAVA的23种设计模式
    Windows 2012 Server评估版本安装问题处理
    从程序员到CTO的Java技术路线图
    MyBatis 学习
    CRT【p3868】[TJOI2009]猜数字
    线段树+扫描线【bzoj1645】[USACO07OPEN]城市的地平线City Horizon
    数学【CF743C】Vladik and fractions
    贪心【CF1029E】Tree with Small Distances
    线段树+二进制位拆分【CF242E】XOR on Segment
  • 原文地址:https://www.cnblogs.com/xiaofengfeng/p/2441517.html
Copyright © 2011-2022 走看看