private static void insertion(string[] array, int num, int num2, int num3) { for (int i = num; i <= num2; i++) { int num4 = i; while (num4 > num && Quick3string.less(array[num4], array[num4 - 1], num3)) { Quick3string.exch(array, num4, num4 - 1); num4 += -1; } } }
private static void sort(string[] array, int num, int num2, int num3) { if (num2 <= num + 15) { Quick3string.insertion(array, num, num2, num3); return; } int num4 = num; int num5 = num2; int num6 = Quick3string.charAt(array[num], num3); int i = num + 1; while (i <= num5) { int num7 = Quick3string.charAt(array[i], num3); if (num7 < num6) { int arg_47_1 = num4; num4++; int arg_47_2 = i; i++; Quick3string.exch(array, arg_47_1, arg_47_2); } else if (num7 > num6) { int arg_5A_1 = i; int arg_5A_2 = num5; num5 += -1; Quick3string.exch(array, arg_5A_1, arg_5A_2); } else { i++; } } Quick3string.sort(array, num, num4 - 1, num3); if (num6 >= 0) { Quick3string.sort(array, num4, num5, num3 + 1); } Quick3string.sort(array, num5 + 1, num2, num3); }