插入排序与选择排序

选择排序

每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完。
 
代码实现:
 public static void choose_sort(int[] a)
     {
         int i,j,min;
         for(i=0;i<a.length;i++)
         {
             min=i;
             for(j=i+1;j<a.length;j++)
             {
                 if(a[j]<a[min])
                 {
                     min=j;
                 }
             }
             if(min!=i)
             {
                 int tmp=a[i];
                 a[i]=a[min];
                 a[min]=tmp;
                        
             }
         }
     }

插入排序

插入排序(Insertion Sort)的算法描述是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,通常采用in-place排序(即只需用到O(1)的额外空间的排序),因而在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。
 
代码实现:
     public static void insert_sort(int[] a)
     {
         int i,j;
         for(i=2;i<a.length;i++)
         {
             a[0]=a[i];
             j=i-1;
             while(j>0 && a[j]<a[0])
             {
                 a[j+1]=a[j];
                 j--;
             }
             a[j+1]=a[0];
         }
     }

 

posted @ 2014-08-28 11:55  BlueSea017  阅读(98)  评论(0)    收藏  举报