/// <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; } } } }
冒泡排序
时间: 2024-11-11 14:33:40