• 经典算法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(); 

    } } 


  • 相关阅读:
    通过Spring @PostConstruct 和 @PreDestroy 方法 实现初始化和销毁bean之前进行的操作
    Java注释@interface的用法
    java的一段对象数据类型映射的代码
    Google Protocol Buffer 的使用和原理
    MyISAM 和 InnoDB 讲解
    一个PHP写的简单webservice服务端+客户端
    提高php运行效率的50个技巧
    剑指Offer:二叉搜索树的后序遍历序列【33】
    剑指Offer:链表中环的入口节点【23】
    剑指Offer:删除链表的节点【18】
  • 原文地址:https://www.cnblogs.com/elzero/p/817963.html
Copyright © 2020-2023  润新知