标签:
/// <summary>
/// 快速排序
/// </summary>
/// <param name="array">需要排序的数组</param>
/// <param name="Max">当前排序序列的最大索引</param>
/// <param name="Min">当前排序序列的最小索引</param>
static void QuickSort(int[] array,int Max,int Min)
{
if (Max - Min<=1) //序列中元素个数小于等于2时 退出递归
{
if (Max - Min == 1)
{
if (array[Max] < array[Min])
{
int temp = array[Max];
array[Max] = array[Min];
array[Min] = temp;
}
}
return;
}
int tempMax = Max;
int tempMin = Min+1;
int index = Min;
while (tempMin <= tempMax) //去序列的第一个数作为标准 将当前序列 分为两部分 比标准小的放在标准前面 比标准大的放到标准后面
{
if (array[index] >=array[tempMin] )
{
int temp = array[index];
array[index] = array[tempMin];
array[tempMin] = temp;
index++;
tempMin++;
continue;
}
int num = array[tempMax];
array[tempMax] = array[tempMin];
array[tempMin] = num;
tempMax--;
continue;
}
int n=index;
if (index == Max)//如果标准在序列中为最大值 处理标准所在的下标
n = index - 1;
QuickSort(array, Max, tempMin); //标准分成的两部分再次划分 缩小排序规模
QuickSort(array, index, Min);
}
快速排序
/// <summary>
/// 冒泡排序
/// </summary>
/// <param name="array">需要排序的数组</param>
static void BubbleSort(int[] array)
{
for (int i = 1; i < array.Length; i++)
{
for (int j = array.Length - i; j < array.Length-1; j++)
{
if (array[j] > array[j + 1])
{
int temp = array[j];
array[j] = array[j+1];
array[j+1] = temp;
}
}
}
}
冒泡排序
标签:
原文地址:http://www.cnblogs.com/NEAVERS/p/4488359.html