1、插入排序

    void doInsertSort(int[] src)
    {
       int len=src.length;
       for(int i=1;i<len;i++)
       {
           int j;
           int temp=src[i];
           for(j=i;j>0;j--)
           {
              if(src[j-1]>temp)
              {
                  src[j]=src[j-1];  
              }
              else //如果当前的数,不小前面的数,那就说明不小于前面所有的数
                {
                  //因为前面已经是排好了序的,所以直接通出当前一轮的比较
                     break;
              }
           }
           src[j]=temp;
           printResult(i,src);
       }
    }

 

2、选择排序

 void doChooseSort(int[] src)
    {
       int len=src.length;
       int temp;
       for(int i=0;i<len;i++)
       {
           temp=src[i];
           int j;
           int samllestLocation=i;//最小数的下标
           for(j=i+1;j<len;j++)
           {
              if(src[j]<temp)
              {
                  temp=src[j];//取出最小值
                  samllestLocation=j;//取出最小值所在下标
              }
           }
           src[samllestLocation]=src[i];
           src[i]=temp;
           printResult(i,src);
       }
    }

 

3、冒泡排序

 void doBubbleSort(int[] src)
    {
       int len=src.length;
       for(int i=0;i<len;i++)
       {
           for(int j=i+1;j<len;j++)
           {
              int temp;
              if(src[i]>src[j])
              {
                  temp=src[j];
                  src[j]=src[i];
                  src[i]=temp;
              }            
           }
           printResult(i,src);
       }     
    }

 

posted on 2012-04-17 23:49  长风一剑  阅读(317)  评论(0编辑  收藏  举报