内部排序(所有数据加载到内存中):交换式排序:冒泡和快速。冒泡如下:
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;
}