排序

//选择排序  
 class selectionsorter  
 {  
     private int min   
     public void sort(int[] arr)  
     {  
         for (int i = 0  i <  arr.length - 1  ++i)  
         {  
             min = i   
             for (int j = i + 1  j <  arr.length  ++j)  
             {  
                 if (arr[j] <  arr[min])  
                     min = j   
             }  
             int t = arr[min]   
             arr[min] = arr[i]   
             arr[i] = t   
         }  
     }  
     static void main(string[] args)  
     {  
         int[] array = new int[] { 1  5  3  6  10  55  9  2  87  12  34  75  33  47 }   
         selectionsorter s = new selectionsorter()   
         s.sort(array)   
         foreach (int m in array)  
             console.writeline(" {0}"   m)   
     }  
 }  
 //冒泡排序  
 class ebullitionsorter  
 {  
     public void sort(int[] arr)  
     {  
         int i  j  temp   
         bool done = false   
         j = 1   
         while ((j <  arr.length) & &  (!done))//判断长度  
         {  
             done = true   
             for (i = 0  i <  arr.length - j  i++)  
             {  
                 if (arr[i] >  arr[i + 1])  
                 {  
                     done = false   
                     temp = arr[i]   
                     arr[i] = arr[i + 1] //交换数据  
                     arr[i + 1] = temp   
                 }  
             }  
             j++   
         }  
     }  

     static void main(string[] args)  
     {  
         int[] array = new int[] { 1  5  3  6  10  55  9  2  87  12  34  75  33  47 }   
         ebullitionsorter e = new ebullitionsorter ()   
         e.sort(array)   
         foreach (int m in array)  
             console.writeline(" {0}"   m)   

     }  
 }  
 //快速排序  
 class quicksorter  
 {  
     private void swap(ref int l  ref int r)  
     {  
         int temp   
         temp = l   
         l = r   
         r = temp   
     }  
     public void sort(int[] list  int low  int high)  
     {  
         int pivot //存储分支点  
         int l  r   
         int mid   
         if (high < = low)  
             return   
         else if (high == low + 1)  
         {  
             if (list[low] >  list[high])  
                 swap(ref list[low]  ref list[high])   
             return   
         }  
         mid = (low + high) > >  1   
         pivot = list[mid]   
         swap(ref list[low]  ref list[mid])   
         l = low + 1   
         r = high   
         do
         {  
             while (l < = r & &  list[l] <  pivot)  
                 l++   
             while (list[r] > = pivot)  
                 r--   
             if (l <  r)  
                 swap(ref list[l]  ref list[r])   
         } while (l <  r)   
         list[low] = list[r]   
         list[r] = pivot   
         if (low + 1 <  r)  
             sort(list  low  r - 1)   
         if (r + 1 <  high)  
             sort(list  r + 1  high)   
     }  

 

     static void main(string[] args)  
     {  
         int[] iarrary = new int[] { 1  5  3  6  10  55  9  2  87  12  34  75  33  47 }   
         quicksorter q = new quicksorter()   
         q.sort(iarrary  0  13)   
         for (int m = 0  m < = 13  m++)  
             console.writeline(" {0}"   iarrary[m])   
     }  
 }  
 //插入排序  
 public class insertionsorter  
 {  
     public void sort(int[] arr)  
     {  
         for (int i = 1  i <  arr.length  i++)  
         {  
             int t = arr[i]   
             int j = i   
             while ((j >  0) & &  (arr[j - 1] >  t))  
             {  
                 arr[j] = arr[j - 1] //交换顺序  
                 --j   
             }  
             arr[j] = t   
         }  
     }  
     static void main(string[] args)  
     {  
         int[] array = new int[] { 1  5  3  6  10  55  9  2  87  12  34  75  33  47 }   
         insertionsorter i = new insertionsorter()   
         i.sort(array)   
         foreach (int m in array)  
             console.writeline(" {0}"   m)    
     }  
 }  
 //希尔排序  
 public class shellsorter  
 {  
     public void sort(int[] arr)  
     {  
         int inc   
         for (inc = 1  inc < = arr.length / 9  inc = 3  inc + 1)    
         for (  inc >  0  inc /= 3)  
         {  
             for (int i = inc + 1  i < = arr.length  i += inc)  
             {  
                 int t = arr[i - 1]   
                 int j = i   
                 while ((j >  inc) & &  (arr[j - inc - 1] >  t))  
                 {  
                     arr[j - 1] = arr[j - inc - 1] //交换数据  
                     j -= inc   
                 }  
                 arr[j - 1] = t   
             }  
         }  
     }  

     static void main(string[] args)  
     {  
         int[] array = new int[] { 1  5  3  6  10  55  9  2  87  12  34  75  33  47 }   
         shellsorter s = new shellsorter()   
         s.sort(array)   
         foreach (int m in array)  
             console.writeline(" {0}"   m)    

     }  
 }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值