最简单的三种排序算法,分别是冒泡排序,选择排序,插入排序
在这里,主要用图去帮助记忆三种排序的具体操作
冒泡排序(从左到右,从上到下)
不变性:右边是有序的
代码:
public void bubbleSort(){
int out, in;
for(out = nElems-1; out > 0; out--)
for(in = 0 ; in < out; in++)
if(a[in]>a[in+1])
swap(in,in+1);
}
选择排序
不变性:最左边是有序的
代码:
public void selectionSort()
{
int out,in,min;
for(out=0;out<=nElems-2;out++){
min = out;
for(in=out+1;in<=nElems-1;in++)
{
if(a[min] > a[in])
min = in;
}
swap(out,min);
}
}
插入排序
不变性:左边局部有序
代码:
public void insertSort()
{
int out,in;
for(out=1;out<=nElems-1;out++)
{
int temp = a[out];
for(in = out ;in>=1;in--)
{
if(a[in-1]>temp)
a[in] = a[in-1];
}
a[in] = temp;
}
}