Pagini recente » Cod sursa (job #1904751) | Cod sursa (job #2072084) | Clasament simulare-cartita-22 | Cod sursa (job #472380) | Cod sursa (job #2276959)
// Simple C++ program to find k'th smallest element
#include<iostream>
#include<algorithm>
#include<fstream>
using namespace std;
ifstream f("sdo.in");
ofstream g("sdo.out");
int arr[100];
void qs(int i, int j)
{
int s,d,m,aux;
s=i;
d=j;
m=arr[(i+j)/2];
while(s<=d)
{
while(arr[s]<m) s++;
while(arr[d]>m) d--;
if(s<=d)
{
aux=arr[s];
arr[s]=arr[d];
arr[d]=aux;
s++;
d--;
}
}
if(i<d) qs(i,d);
if(j>s) qs(s,j);
}
// Function to return k'th smallest element in a given array
int kthSmallest(int arr[], int n, int k)
{
// Sort the given array
qs(1 , n);
// Return k'th element in the sorted array
return arr[k];
}
// Driver program to test above methods
int main()
{
int n, k, x;
f >> n >> k;
for(x=1;x<=n; x++)
f >> arr[x];
//int arr[] = {12, 3, 5, 7, 19};
//int n = sizeof(arr)/sizeof(arr[0]), k = 2;
g << "K'th smallest element is " << kthSmallest(arr, n, k);
return 0;
}