参考:Wiki 排序算法
插入排序
插入排序的基本思想是,将元素逐个添加到已经排序好的数组中去,同时要求,插入的元素必须在正确的位置,这样原来排序好的数组是仍然有序的。
public static void InsertSort(double[] data)
{
int i, j;
var count = data.Length;
for (i = 1 ; i < count ; i++)
{
var t = data[i];
for(j = i - 1; j >= 0 && data[j] > t; j--)
{
data[j + 1] = data[j];
}
data[j + 1] = t;
}
}
冒泡排序
冒泡排序的基本思想是,不断比较相邻的两个数,让较大的元素不断地往后移。经过一轮比较,就选出最大的数;经过第2轮比较,就选出次大的数,以此类推。
static void BubbleSort(int[] intArray)
{
int temp = 0;
bool swapped;
for (int i = 0; i < intArray.Length; i++)
{
swapped = false;
for (int j = 0; j < intArray.Length - 1 - i; j++)
{
if (intArray[j] > intArray[j + 1])
{
temp = intArray[j];
intArray[j] = intArray[j + 1];
intArray[j + 1] = temp;
if (!swapped)
swapped = true;
}
}
if (!swapped)
{
return;
}
}
}