
void swap(int *v1, int *v2) {int temp = *v1;*v1 = *v2; *v2 = temp;}

#include <stdio.h>

void p_arr(int arr[], int size) {
	int i = 0;
	while (i < size) printf("%d ", arr[i++]);

	printf("size=%d\n", size);

}


void quick_sort(int arr[], int size) {
	if (size < 2) return ;
	
	int pivot = (size - 1)[arr], i = 0, j = -1;// arr[size -1] = (size - 1)[arr] -> *(arr + size - 1)
	while (++j < size) {
		if (arr[j] <= pivot) swap(arr + i++, arr + j);
	}
	
	quick_sort(arr, i - 1); // 5 3 2 4 -> 3 5 2 4 -> 3 2 5 4 -> 3 2 4 5 -> size:3 -> -1 -> size:2 -> 
	quick_sort(arr + i, size - i);
}


#include <stdio.h>
int main() {
	int arr[] = {5,1,1,2,0,0};
	
	quick_sort(arr, 6);
	int i = 0;

	while (i < 6) {printf("%d\n",arr[i++]);}
}
