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

    forint 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) 

    forint i=0;i<list.Length-1;i++) 

    { min=i; 

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

    forint 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) 

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

    forint 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) 



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

    forint m=0;m<iArrary.Length;m++) 

    Console.Write(
    "{0} ",iArrary[m]); 

    Console.WriteLine(); 

    }
     }
     

    }
     
     
    http:
    //www.uml.org.cn/net/200603242.htm

  • 相关阅读:
    三种按键处理函数
    enum与typedef enum的用法
    PIC18F中断定时器
    .net core Ocelot+Consul实现网关及服务注册和服务发现
    wpf的优点
    ASP.NET Core Web API下事件驱动型架构的实现
    2020个人计划
    图解C#的值类型,引用类型,栈,堆,ref,out
    .NET Core中的一个接口多种实现的依赖注入与动态选择
    redis分布式锁深度剖析
  • 原文地址:https://www.cnblogs.com/sxlfybb/p/615421.html
Copyright © 2020-2023  润新知