• 几种常用的排序算法


    1 冒泡排序法

     1#region 冒泡排序法
     2public void Sort(int[] list)
     3{
     4    long begintime = System.DateTime.Now.Second*1000+System.DateTime.Now.Millisecond;
     5    WriteLine(begintime);
     6    int j,temp;
     7    j= 1;
     8    while((j<list.Length))
     9    {
    10        for(int i=0;i<list.Length -j;i++)
    11        {
    12            if(list[i]<list[i+1])
    13            {
    14                temp = list[i];
    15                list[i] = list[i+1];
    16                list[i+1= temp;
    17            }

    18        }

    19        j++;
    20    }

    21    long endtime = System.DateTime.Now.Second*1000+System.DateTime.Now.Millisecond;
    22    WriteLine(endtime);
    23    WriteLine(endtime-begintime);
    24}

    25#endregion

    2 选择排序法
     1#region 选择排序法
     2public void SortChoice(int [] list)
     3{
     4    long begintime = System.DateTime.Now.Millisecond;
     5    int min;
     6    for(int i=0;i<list.Length-1;i++)
     7    {
     8        min=i;
     9        for(int j=i+1;j<list.Length;j++)
    10        {
    11            if(list[j]<list[min])
    12                min=j;
    13        }

    14        int t=list[min];
    15        list[min]=list[i];
    16        list[i]=t;
    17    }

    18    long endtime = System.DateTime.Now.Millisecond;
    19    WriteLine(begintime);
    20    WriteLine(endtime);
    21    WriteLine(endtime-begintime);
    22}

    23#endregion

    3 插入排序法
     1#region 插入排序法
     2public void SortInsert(int [] list)
     3{
     4    for(int i=1;i<list.Length;i++)
     5    {
     6        int t=list[i];
     7        int j=i;
     8        while((j>0)&&(list[j-1]<t))
     9        {
    10            list[j]=list[j-1];
    11            --j;
    12        }

    13        list[j]=t;
    14    }

    15}

    16#endregion

    4 希尔排序法
     1#region 希尔排序法
     2public void SortShell(int [] list)
     3{
     4    int inc;
     5    for(inc=1;inc<=list.Length/9;inc=3*inc+1);
     6    for(;inc>0;inc/=3)
     7    {
     8        for(int i=inc+1;i<=list.Length;i+=inc)
     9        {
    10            int t=list[i-1];
    11            int j=i;
    12            while((j>inc)&&(list[j-inc-1]>t))
    13            {
    14                list[j-1]=list[j-inc-1];
    15                j-=inc;
    16            }

    17            list[j-1]=t;
    18        }

    19    }

    20}

    21#endregion

  • 相关阅读:
    Nginx负载均衡+代理+ssl+压力测试
    Nginx配置文件详解
    HDU ACM 1690 Bus System (SPFA)
    HDU ACM 1224 Free DIY Tour (SPFA)
    HDU ACM 1869 六度分离(Floyd)
    HDU ACM 2066 一个人的旅行
    HDU ACM 3790 最短路径问题
    HDU ACM 1879 继续畅通工程
    HDU ACM 1856 More is better(并查集)
    HDU ACM 1325 / POJ 1308 Is It A Tree?
  • 原文地址:https://www.cnblogs.com/ungshow/p/1430782.html
Copyright © 2020-2023  润新知