Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.Scanner;
- public class Sort {
- /*Тази функция взима последния елемент за опорна точка
- и го поставя на правилна позиция
- в сортирания масив ии поставя всички по-малки
- елементи на ляво от опрната точка
- и всички по големи на дясно от нея*/
- int partition(double second[], int low, int high) {
- double pivot = second[high];
- int i = (low - 1); // индекса на по-малкия елемент
- for (int j = low; j < high; j++) {
- // ако елемента е по-малък или равен на
- // опорния елемент
- if (second[j] <= pivot) {
- i++;
- // разменяме arr[i] и arr[j]
- double temp = second[i];
- second[i] = second[j];
- second[j] = temp;
- }
- }
- // раменяме arr[i+1] и arr[high] (или опорния елемент)
- double temp = second[i + 1];
- second[i + 1] = second[high];
- second[high] = temp;
- return i + 1;
- }
- /* Главната функция, която прилага QuickSort()
- arr[] --> да се сортира масива,
- low --> начален индекс,
- high --> краен индекс */
- void quicsort(double second[], int low, int high) {
- if (low < high) {
- double pi = partition(second, low, high);
- // Рекурсивно сортираните елементи преди
- // разделянето и след него.
- quicsort(second, low, (int)pi - 1);
- quicsort(second, (int)pi + 1, high);
- }
- }
- /* Принтира масива*/
- static void printArray(double second[]) {
- int l = second.length;
- for (int i = 0; i < l; ++i)
- System.out.print(second[i] + " ");
- System.out.println();
- }
- public static void main(String[] args) {
- Scanner scanner = new Scanner(System.in);
- System.out.println("Големина: ");
- int size = Integer.parseInt(scanner.nextLine());
- int[] arr1 = new int[size];
- int[] arr2 = new int[size];
- double[] arr3 = new double[size];
- for (int i = 0; i < size; i++) {
- System.out.println("Елемент за масив 1: ");
- arr1[i] = Integer.parseInt(scanner.nextLine());
- }
- for (int i = 0; i < size; i++) {
- System.out.println("Елемент за масив 2: ");
- arr2[i] = Integer.parseInt(scanner.nextLine());
- }
- for (int i = 0; i < size; i++) {
- arr3[i] = (double) arr1[i] / arr2[i];
- System.out.print(arr3[i] + " ");
- }
- System.out.println();
- int m = size;
- quicSort ob = new quicSort();
- ob.quicsort(arr2, 0, m - 1);
- printArray(arr3);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement