最簡單的三種排序算法,分别是冒泡排序,選擇排序,插入排序
在這裡,主要用圖去幫助記憶三種排序的具體操作
冒泡排序(從左到右,從上到下)

不變性:右邊是有序的
代碼:
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;
}
}