排序的一些东西
內部排序(所有數據加載到內存中):交換式排序:冒泡和快速。冒泡如下:
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;
}
轉載于:https://www.cnblogs.com/kanego/archive/2011/03/21/1990522.html
總結
- 上一篇: Android超简单的进度条源码
- 下一篇: php文件里直接写上?xml versi