冒泡算法:
public static void BubbleSort(int[] array)
{
for (int i = 0; i < array.Length; i++)
{
for (int j = 0; j < array.Length-1-i; j++)
{
if (array[j + 1] < array[j])
{
int temp = array[j + 1];
array[j + 1] = array[j];
array[j] = temp;
}
}
}
}
选择排序:
public static void SelectSort(int[] array)
{
for (int i = 0; i < array.Length; i++)
{
int min = i;
for (int j = i+1; j < array.Length; j++)
{
if (array[j]<array[min])
{
min = j;
}
}
int t = array[min];
array[min] = array[i];
array[i] = t;
}
}
插入排序:
public static void InsertSort(int[] array)
{
for (int i = 1; i < array.Length; i++)
{
int j = i;
int t = array[j];
//在循环里,让每一个值与需要插入的值进行比较,此处必须是t,不可为array[j]
while ((j>0)&&(array[j-1]>t))
{
array[j] = array[j-1];
j--;
}
array[j] = t;
}
}
快速排序:
public static void QuickSort(int[] array, int left,int right)
{
if (left < right)
{
int i = left;
int j = right - 1;
int middle = array[(left + right) / 2];
while (true)
{
while (i < right && array[i] < middle) { i++; };
while (j > 0 && array[j] > middle) { j--; };
if (i == j) break;
int temp;
temp = array[i];
array[i] = array[j];
array[j] = temp;
if (array[i] == array[j]) j--;
}
QuickSort(array, left, i);
QuickSort(array, i + 1, right);
}
}