Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.BufferedReader;
- import java.io.InputStreamReader;
- import java.util.Scanner;
- public class Ld1151rdb414 {
- public static void firstMethod(int[] A, int max, int min) {
- /** Šķirošana ar saskaitīšanu **/
- max = A[0];
- min = A[0];
- /** atrod maksimālās un minimālās vērtības **/
- for (int i = 1; i < A.length; i++) {
- if (A[i] > max)
- max = A[i];
- if (A[i] < min)
- min = A[i];
- }
- int range = max - min + 1;
- int[] count = new int[range];
- /** make count/frequency array for each element **/
- for (int i = 0; i < A.length; i++) {
- count[A[i] - min]++;
- }
- /** modify count so that positions in final array is obtained **/
- for (int i = 1; i < range; i++) {
- count[i] += count[i - 1];
- }
- /** modify original array **/
- int j = 0;
- for (int i = 0; i < range; i++) {
- while (j < count[i]) {
- A[j++] = i + min;
- }
- }
- }
- public static void secondMethod(int[] A, int left, int right) {
- /** QuickSort (Hoara metode) **/
- int medIndex = left + (right - left) / 2;
- int medVert = A[medIndex];
- int i = left, j = right;
- while(i <= j) {
- while(A[i] < medVert) {
- i++;
- }
- while(A[j] > medVert) {
- j--;
- }
- if(i <= j) {
- int tmp = A[i];
- A[i] = A[j];
- A[j] = tmp;
- i++;
- j--;
- }
- if(left < i) {
- secondMethod(A, left, j);
- }
- if(right > i) {
- secondMethod(A, i, right);
- }
- }
- }
- public static void main(String[] args) {
- int met;
- String me;
- System.out.println("Toms Škarsts IRDBD02 151RDB414");
- try {
- BufferedReader br = new BufferedReader(
- new InputStreamReader(System.in)
- );
- System.out.print("method:");
- me = br.readLine();
- met = Integer.parseInt(me);
- }
- catch(Exception e){
- System.out.println("input-output error");
- return;
- }
- /** pārbauda, lai izvēlētas tikai metodes 1 vai 2 **/
- if (met > 2) {
- System.out.println("input-output error (only methods: 1, 2)");
- return;
- }
- /** jāizmanto Scanner, lai nolasītu ievadītos datus **/
- Scanner input = new Scanner(System.in);
- System.out.print("count:");
- /** masīvs ar datiem, kura garums = 'count' ievadītais skaits **/
- int count = input.nextInt();
- int A[] = new int[count];
- System.out.println("items:");
- /** ievadīti elementi līdz sasniedz 'count' ievadīto skaitu **/
- for(int i = 0; i < count; i++){
- A[i] = input.nextInt();
- }
- /** ievades beigas **/
- input.close();
- System.out.println("sorted:");
- /** metode 1 - Šķirošana ar saskaitīšanu **/
- if (met==1) {
- /** nolasīti dati no metodes 1 un izvadīti dati pa vienam **/
- firstMethod(A, 0, A.length - 1);
- for(int i = 0; i < A.length; i++) {
- System.out.print(A[i] + " ");
- }
- }
- /** metode 2 - QuickSort (Hoara metode) **/
- if (met==2) {
- /** nolasīti dati no metodes 2 un izvadīti dati pa vienam **/
- secondMethod(A, 0, A.length - 1);
- for(int i = 0; i < A.length; i++) {
- System.out.print(A[i] + " ");
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement