zoukankan      html  css  js  c++  java
  • 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();          
                  } 
           }
    }
  • 相关阅读:
    mysql复习相关
    OpenStack三种类型的NAT转换
    openstack资料相关
    [转]Web 调试工具之 Advanced REST client
    [转]Aspose.Words.dll 将 Word 转换成 html
    [Android] 开发第十天
    [win10]遇坑指南
    [转]Explorer.exe的命令行参数
    [Android] 开发第九天
    [Android] 开发第八天
  • 原文地址:https://www.cnblogs.com/oec2003/p/783436.html
Copyright © 2011-2022 走看看