fork(3) download
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<math.h>
  4.  
  5. void swap(int *a, int *b){
  6.  
  7. int temp = *a;
  8. *a = *b;
  9. *b = temp;
  10.  
  11. }
  12. int partition(int A[], int start, int end){
  13. int i= start+1;
  14. int j = i;
  15. int pivot = start;
  16. for(; i<end; i++){
  17. if(A[i]<A[pivot]){
  18. swap(&A[i],&A[j]);
  19. j++;
  20. }
  21. }
  22. if(j<=end){
  23. swap(&A[pivot],&A[j-1]);
  24. }
  25. return j-1;
  26. }
  27.  
  28. void quick_sort(int A[], int start, int end, int K){
  29. int part ;
  30. if(start <end) {
  31. part = partition(A, start, end);
  32. if(part == K-1){
  33. printf("kth smallest element : %d" , A[part]);
  34. }
  35. if(part>K-1){
  36. quick_sort(A, start,part, K);
  37. }
  38. else{
  39. quick_sort(A, part+1, end, K);
  40. }
  41. }
  42. return;
  43. }
  44. /* Driver program for the function written above */
  45. int main(){
  46. int array[] = {4,2,1,-7,5,3,8,10,9,6};
  47. int n = sizeof(array)/sizeof(array[0]);
  48. quick_sort(array,0, n, 4);
  49. return 0;
  50. }
Success #stdin #stdout 0s 2052KB
stdin
Standard input is empty
stdout
kth smallest element : 3