///
/// 冒泡排序
///
public void BubbleSort(int[] sortItems)
{
for (int i = 0; i < sortItems.Length; i++)
{
for (int j = sortItems.Length - 2; j >= i; j--)
{
if (sortItems[j + 1] < sortItems[j])
{
//--------- 实现交换 ---------
int temp = sortItems[j];
sortItems[j] = sortItems[j + 1];
sortItems[j + 1] = temp;
//--------- 实现交换 ---------
}
}
}
}
///
/// 冒泡排序(优化版)
///
public void BubbleSortImproved(int[] sortItems)
{
int i, j, temp;
bool flag = true;
i = 0;
while (i < sortItems.Length && flag)
{
flag = false;
for (j = sortItems.Length - 2; j >= i; j--)
{
if (sortItems[j + 1] < sortItems[j])
{
//--------- 实现交换 ---------
temp = sortItems[j];
sortItems[j] = sortItems[j + 1];
sortItems[j + 1] = temp;
//--------- 实现交换 ---------
flag = true; //有数据交换,flag设为true;
}
}
i++;
}
}
///
/// 简单选择排序
///
public void SimpleSelectionSort(int[] sortItems)
{
int i, j, min, temp;
for (i = 0; i < sortItems.Length; i++)
{
min = i;
for (j = i + 1; j < sortItems.Length; j++)
{
if (sortItems[min] > sortItems[j])
{
min = j;
}
}
temp = sortItems[min];
sortItems[min] = sortItems[i];
sortItems[i] = temp;
}
}
///
/// 直接插入排序
///
public void StraightInsertionSort(int[] sortItems)
{
int i, j, temp;
for (i = 1; i < sortItems.Length; i++)
{
temp = sortItems[i];
j = i;
while (j > 0 && sortItems[j - 1] > temp)
{
sortItems[j] = sortItems[j - 1];
j--;
}
sortItems[j] = temp;
}
}