【发布时间】:2015-04-29 07:26:34
【问题描述】:
我正在编写一个快速排序程序。快速排序的一部分涉及使用插入排序,但它只对特定范围的元素进行排序,因为快速排序会处理其余部分。我正在尝试模仿我的教科书提供的一种方法,该方法使用
public static void insertionSort(int a[], int left, int right)
但我正在努力弄清楚左右是如何使用的。下面是不使用左右参数的插入排序代码:
public static void insertionSort(int a[], int left, int right) {
int j;
for (int p = 1; p < a.length; p++) {
int tmp = a[p];
for(j = p; j > 0 && tmp < a[j - 1]; j--) {
a[j] = a[j-1];
}
a[j] = tmp;
}
}
如果我要添加 left 和 right 参数来帮助仅对数组的一部分进行排序,它们会应用在哪里?
感谢您的帮助。
【问题讨论】: