| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 | /* StarPU --- Runtime system for heterogeneous multicore architectures. * * Copyright (C) 2020       Université de Bordeaux, CNRS (LaBRI UMR 5800), Inria * Copyright (C) 2019       Mael Keryell * * StarPU is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1 of the License, or (at * your option) any later version. * * StarPU is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * * See the GNU Lesser General Public License in COPYING.LGPL for more details. */#include "sorting.h"unsigned chose_pivot(int first, int last){	return ( rand() % (last - first + 1) + first );}int partitionning(double *arr, int first, int last, int pivot){	double tmp;	int i,j;	tmp = arr[last];	arr[last] = arr[pivot];	arr[pivot] = tmp;	j = first;	for (i = first; i < last; i++)	{		if (arr[i] <= arr[last]){			tmp = arr[i];			arr[i] = arr[j];			arr[j] = tmp;			j++;		}	}	tmp = arr[j];	arr[j] = arr[last];	arr[last] = tmp;	return j;}void quicksort(double *arr, int first, int last){	if (first < last){		int pivot = chose_pivot(first, last);		int j;		j = partitionning(arr, first, last, pivot);		quicksort(arr, first, j - 1);		quicksort(arr, j + 1, last);	}}
 |