排序的一些东西

内部排序(所有数据加载到内存中):交换式排序:冒泡和快速。冒泡如下:

for(int i = 0;i<arr.length-1;i++)

{  for(int j = 0;j<arr.length-1-i;j++)

  {

     if(arr[j]>arr[j+1])

     int temp = arr[j];

     arr[j]=arr[j+1];

     arr[j]=temp;

  }

}//把大的往后走

选择排序:从欲排序的数据中,按某一原则,选出一元素,和其他元素按规则进行交换,从而达到排序目的.如下:

for(int i=0;i<arr.length-1;i++)

{

  min=arr[i];

  minIndex=i;

  for(int j=i+1;j<arr.length;j++)

    {

      if(min<arr[j])

        min=arr[j];

        minIndex=j;

    }

  int temp=arr[i];

  arr[i]=arr[minIndex];

  arr[minIndex]=temp;

}

插入式排序:插入排序、谢尔排序、二叉树排序。

插入排序:一开始分为有序表和无序表,一开始有序表只有一个数吗,无序表有n-1个数。用无序表的数依次和有序表比较,并进行插入。

如下:

for(int i = 1;i<arr.length;i++)

{

  int insertVal= arr[i];

  int index = i-1;

  while(index>=0&&insertVal<arr[index])

    {

      arr[index+1]=arr[index];

      index--;

    }

    arr[index+1]=insertVal;

}

posted @ 2011-03-21 17:04  kanego  阅读(166)  评论(0编辑  收藏  举报