Cod sursa(job #1481403)

Utilizator Biancageorgianaonici bianca Biancageorgiana Data 4 septembrie 2015 13:27:10
Problema Statistici de ordine Scor 0
Compilator java Status done
Runda Arhiva educationala Marime 1.29 kb
//Dat un vector de n elemente, sa se afle al k-le minim din vector

package curs5;

import java.util.Scanner;

public class StatisticiDeOrdine {

	private int A[];
	private int dim;
	private int k;
	
	private void creare() {
		Scanner sc=new Scanner(System.in);
		System.out.print("nr de elemente = ");
		dim=sc.nextInt();
		System.out.println("k = ");
		k = sc.nextInt();
		A=new int[dim + 1];
		System.out.print("elementele:");
		for(int i = 1; i <= dim; i++)
			A[i]=sc.nextInt();
	}
	
	private int quicksort(int p, int u) {
		if(p < u){
			int m = partitie(p, u);
			if(m == k){
				System.out.println(A[m]);
				return 0;
			}
			if(k < m)
				return quicksort(p, m);
			else if(k > m)  return quicksort(m + 1, u);
		}
		return 0;
	}
	
	private int partitie(int p, int u) {
		int x = A[p];
		int i = p;
		for(int j = i+1; j <= u; j++) {
			if(A[j] < x) {
				i++;
				int aux = A[i];
				A[i] = A[j];
				A[j] = aux;
			}
		}
		int aux = A[p]; 
		A[p] = A[i];
		A[i] = aux;
		return i;
	}
	
	private void afisare() {
		for(int i = 1; i <= dim; i++)
			System.out.print(A[i] + " ");
	}
	
	public static void main(String args[]) {
		StatisticiDeOrdine obj = new StatisticiDeOrdine();
		obj.creare();
		obj.quicksort(1, obj.dim);
		obj.afisare();
	}
}