4.3 Коды для быстрого поиска (функции Quicksort)
typedef int T; /* type of item to be sorted */
typedef int tblIndex; /* type of subscript */
#define CompGT(a,b) (a > b)
tblIndex partition(T *a, tblIndex lb, tblIndex ub) {
T t, pivot;
tblIndex i, j, p;
/*******************************
* partition array a[lb..ub] *
*******************************/
/* select pivot and exchange with 1st element */
p = lb + ((ub - lb)>>1);
pivot = a[p];
a[p] = a[lb];
/* sort lb+1..ub based on pivot */
i = lb+1;
j = ub;
while (1) {
while (i < j && compGT(pivot, a[i])) i++;
while (j >= i && compGT(a[j], pivot)) j--;
if (i >= j) break;
t = a[i];
a[i] = a[j];
a[j] = t;
j--; i++;
}
/* pivot belongs in a[j] */
a[lb] = a[j];
a[j] = pivot;
return j;
}
void quickSort(T *a, tblIndex lb, tblIndex ub) {
tblIndex m;
/**************************
* sort array a[lb..ub] *
**************************/
while (lb < ub) {
/* quickly sort short lists */
if (ub - lb
Еще по теме 4.3 Коды для быстрого поиска (функции Quicksort):
- 4.4 Коды для стандартной реализации быстрого поиска
- Быстрый поиск сносок
- 4.1 Коды для сортировки вставками
- 4.2 Коды для сортировки Шелла
- 4.5 Коды для хеш-таблиц
- 4.6 Коды для бинарных деревьев
- 4.8 Коды для разделенных списков
- 4.7 Коды для красно-черных деревьев
- Теорема 34 Тело В при этих условиях не может двигаться быстрее, чем оно побуждается внешней силой, хотя бы окружающие его частицы двигались гораздо быстрее.
- 2. Для познания страстей души нужно различать ее функции от функций тела
- Политика региональной исключительности и поиск ресурсов конкурентоспособности для развития
- Поиски масштабов для характеристики социального процесса
- Коды Хэмминга
- Приложение 4 Алгоритм распознавания окружностей со случайным поиском для робототехнической системы
- 1.3.3. Использование методов анализа сигналов для решения задачи поиска «цели»