Pagini recente » Cod sursa (job #1370178) | Cod sursa (job #953653) | Cod sursa (job #1130599) | Cod sursa (job #155425) | Cod sursa (job #1891471)
#include <stdio.h>
#include <stdlib.h>
void quickSort(int *v, int lower, int upper){
int i, j, pivot, aux;
i = lower;
j = upper;
//pivot = v[ (lower + upper ) / 2];
pivot = v[ lower + (upper - lower) / 2];
while(i <= j){
while(v[i] < pivot) i++;
while(v[j] > pivot) j--;
if(i <= j){
/* change */
aux = v[i];
v[i] = v[j];
v[j] = aux;
i++;
j--;
}
}
if(lower < j){
quickSort(v, lower, j);
}
if(upper > i){
quickSort(v, i, upper);
}
}
void printArray(int *v, int N){
for(int i = 0; i < N; i++){
printf("%d ", v[i]);
}
printf("\n");
}
void readArray(int *v, int N, FILE *in){
for(int i = 0; i < N; i++){
fscanf(in, "%d", v + i);
}
}
int main(){
FILE *in, *out;
int N, k, *v;
in = fopen("sdo.in", "r");
out = fopen("sdo.out", "w");
fscanf(in, "%d", &N);
fscanf(in, "%d", &k);
v = malloc(N * sizeof(int));
readArray(v, N, in);
//printArray(v, N);
quickSort(v, 0, N - 1);
//printArray(v, N);
fprintf(out, "%d", v[k]);
free(v);
fclose(in);
fclose(out);
return 0;
}