In: Computer Science
Write a program in Java with a Scanner.
Given an array and a number k where k is smaller than the size of the array, write a program to find the k'th smallest element in the given array.
It is given that all array elements are distinct.
Example:
Input: arr[] = {7,10,4,3,20,15}
k = 3
Output: 7
import java.util.Arrays;
import java.util.Scanner;
public class KthSmallestElement {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.println("Enter all the numbers you want to put in array seperated by space: ");
String line = in.nextLine();
String tokens[] = line.split("\\s+");
int arr[] = new int[tokens.length];
for (int i = 0; i < arr.length; i++) {
arr[i] = Integer.parseInt(tokens[i]);
}
System.out.print("Enter value of k: ");
int k = in.nextInt();
while(k < 1 || k > arr.length) {
System.out.print("Invalid value.\nEnter value of k: ");
k = in.nextInt();
}
// do k pass in
for (int i = 0; i < k; i++) {
// Last i elements are already in place
for (int j = arr.length - 1; j > i; j--) {
if (arr[j] < arr[j - 1]) {
int l = arr[j];
arr[j] = arr[j-1];
arr[j-1] = l;
}
}
}
//System.out.println(Arrays.toString(arr));
System.out.println("Kth element of array: " + arr[k-1]);
in.close();
}
}
