package Utils.Sort;
/**
*@author Linyco
*利用選擇排序法對數組排序,數組中元素必須實現了Comparable介面。
*/
public class ChooseSort implements SortStrategy
{
/**
*對數組obj中的元素以選擇排序演算法進行排序
*/
public void sort(Comparable[] obj)
{
if (obj == null)
{
throw new NullPointerException("The argument can not be null!");
}
Comparable tmp = null;
int index = 0;
for (int i = 0 ;i < obj.length - 1 ;i++ )
{
index = i;
tmp = obj[i];
for (int j = i + 1 ;j < obj.length ;j++ )
{
//對鄰接的元素進行比較,如果後面的小,就記下它的位置
if (tmp.compareTo(obj[j]) > 0)
{
tmp = obj[j]; //要每次比較都記錄下當前小的這個值!
index = j;
}
}
//將最小的元素交換到前面
tmp = obj[i];
obj[i] = obj[index];
obj[index] = tmp;
}
}
}
其餘的幾個類的連結分別是:
插入排序:http://blog.csdn.net/Linyco/archive/2005/10/10/498735.aspx
冒泡排序:http://blog.csdn.net/Linyco/archive/2005/10/10/498736.aspx
選擇排序:http://blog.csdn.net/Linyco/archive/2005/10/10/498742.aspx
歸併排序:http://blog.csdn.net/Linyco/archive/2005/10/10/498746.aspx
希爾排序:http://blog.csdn.net/Linyco/archive/2005/10/10/498764.aspx
快速排序:http://blog.csdn.net/Linyco/archive/2005/10/10/498759.aspx