1answer.
Ask question
Login Signup
Ask question
All categories
  • English
  • Mathematics
  • Social Studies
  • Business
  • History
  • Health
  • Geography
  • Biology
  • Physics
  • Chemistry
  • Computers and Technology
  • Arts
  • World Languages
  • Spanish
  • French
  • German
  • Advanced Placement (AP)
  • SAT
  • Medicine
  • Law
  • Engineering
Mumz [18]
4 years ago
14

Write a program to sort an array of 100,000 random elements using quicksort as follows: Sort the arrays using pivot as the middl

e element of the array Sort the arrays using pivot as the median of the first, last, and middle elements of the array Sort the arrays using pivot as the middle element of the array. However,, when the size of any sub-list reduces to less than 20, sort the sub-list using insertion sort. Sort the array using pivot as the median of the first, last and middle elements of the array. When the size of any sub-list reduces to less than 20, sort the sub-list using insertion sort. Calculate and display the CPU time for each of the preceding four steps. Example of the median of the first, last and middle elements: 1 2 3 4 5 6 7 8 0 (median of 1, 5, 0 is 1) 8 0 1 2 3 4 5 6 7 (median of 8, 3, 7 is 7) To calculate the CPU time, use the header , and clock_t type. Depends on the CPU of your computer, your number would not be the same as in the sample output below.
Computers and Technology
2 answers:
Stels [109]4 years ago
8 0

Answer:

Check the explanation

Explanation:

#include<iostream.h>

#include<algorithm.h>

#include<climits.h>

#include<bits/stdc++.h>

#include<cstring.h>

using namespace std;

int partition(int arr[], int l, int r, int k);

int kthSmallest(int arr[], int l, int r, int k);

void quickSort(int arr[], int l, int h)

{

if (l < h)

{

// Find size of current subarray

int n = h-l+1;

 

// Find median of arr[].

int med = kthSmallest(arr, l, h, n/2);

 

// Partition the array around median

int p = partition(arr, l, h, med);

 

// Recur for left and right of partition

quickSort(arr, l, p - 1);

quickSort(arr, p + 1, h);

}

int findMedian(int arr[], int n)

{

sort(arr, arr+n); // Sort the array

return arr[n/2]; // Return middle element

}

int kthSmallest(int arr[], int l, int r, int k)

{

// If k is smaller than number of elements in array

if (k > 0 && k <= r - l + 1)

{

int n = r-l+1; // Number of elements in arr[l..r]

 

// Divide arr[] in groups of size 5, calculate median

// of every group and store it in median[] array.

int i, median[(n+4)/5]; // There will be floor((n+4)/5) groups;

for (i=0; i<n/5; i++)

median[i] = findMedian(arr+l+i*5, 5);

if (i*5 < n) //For last group with less than 5 elements

{

median[i] = findMedian(arr+l+i*5, n%5);

i++;

}

int medOfMed = (i == 1)? median[i-1]:

kthSmallest(median, 0, i-1, i/2);

int pos = partition(arr, l, r, medOfMed);

if (pos-l == k-1)

return arr[pos];

if (pos-l > k-1) // If position is more, recur for left

return kthSmallest(arr, l, pos-1, k);

return kthSmallest(arr, pos+1, r, k-pos+l-1);

}

return INT_MAX;

}

void swap(int *a, int *b)

{

int temp = *a;

*a = *b;

*b = temp;

}

int partition(int arr[], int l, int r, int x)

{

// Search for x in arr[l..r] and move it to end

int i;

for (i=l; i<r; i++)

if (arr[i] == x)

break;

swap(&arr[i], &arr[r]);

 

// Standard partition algorithm

i = l;

for (int j = l; j <= r - 1; j++)

{

if (arr[j] <= x)

{

swap(&arr[i], &arr[j]);

i++;

}

}

swap(&arr[i], &arr[r]);

return i;

}

 

/* Function to print an array */

void printArray(int arr[], int size)

{

int i;

for (i=0; i < size; i++)

cout << arr[i] << " ";

cout << endl;

}

 

// Driver program to test above functions

int main()

{

float a;

clock_t time_req;

int arr[] = {1000, 10, 7, 8, 9, 30, 900, 1, 5, 6, 20};

int n = sizeof(arr)/sizeof(arr[0]);

quickSort(arr, 0, n-1);

cout << "Sorted array is\n";

printArray(arr, n);

time_req = clock();

for(int i=0; i<200000; i++)

{

a = log(i*i*i*i);

}

time_req = clock()- time_req;

cout << "Processor time taken for multiplication: "

<< (float)time_req/CLOCKS_PER_SEC << " seconds" << endl;

 

// Using pow function

time_req = clock();

for(int i=0; i<200000; i++)

{

a = log(pow(i, 4));

}

time_req = clock() - time_req;

cout << "Processor time taken in pow function: "

<< (float)time_req/CLOCKS_PER_S

return 0;

}

..................................................................................................................................................................................................................................................................................................................................

OR

.......................

#include <stdio.h>

#include <stdlib.h>

#include <time.h>

 

// Swap utility

void swap(long int* a, long int* b)

{

int tmp = *a;

*a = *b;

*b = tmp;

}

 

// Bubble sort

void bubbleSort(long int a[], long int n)

{

for (long int i = 0; i < n - 1; i++) {

for (long int j = 0; j < n - 1 - i; j++) {

if (a[j] > a[j + 1]) {

swap(&a[j], &a[j + 1]);

}

}

}

}

 

// Insertion sort

void insertionSort(long int arr[], long int n)

{

long int i, key, j;

for (i = 1; i < n; i++) {

key = arr[i];

j = i - 1;

 

// Move elements of arr[0..i-1], that are

// greater than key, to one position ahead

// of their current position

while (j >= 0 && arr[j] > key) {

arr[j + 1] = arr[j];

j = j - 1;

}

arr[j + 1] = key;

}

}

 

// Selection sort

void selectionSort(long int arr[], long int n)

{

long int i, j, midx;

 

for (i = 0; i < n - 1; i++) {

 

// Find the minimum element in unsorted array

midx = i;

 

for (j = i + 1; j < n; j++)

if (arr[j] < arr[min_idx])

midx = j;

 

// for plotting graph with integer values

printf("%li, %li, %li, %li\n",

n,

(long int)tim1[it],

(long int)tim2[it],

(long int)tim3[it]);

 

// increases the size of array by 10000

n += 10000;

}

 

return 0;

}

Ivahew [28]4 years ago
8 0

Answer:

See explaination

Explanation:

#include <stdio.h>

#include <stdlib.h>

#include <time.h>

// Swap utility

void swap(long int* a, long int* b)

{

int tmp = *a;

*a = *b;

*b = tmp;

}

// Bubble sort

void bubbleSort(long int a[], long int n)

{

for (long int i = 0; i < n - 1; i++) {

for (long int j = 0; j < n - 1 - i; j++) {

if (a[j] > a[j + 1]) {

swap(&a[j], &a[j + 1]);

}

}

}

}

// Insertion sort

void insertionSort(long int arr[], long int n)

{

long int i, key, j;

for (i = 1; i < n; i++) {

key = arr[i];

j = i - 1;

// Move elements of arr[0..i-1], that are

// greater than key, to one position ahead

// of their current position

while (j >= 0 && arr[j] > key) {

arr[j + 1] = arr[j];

j = j - 1;

}

arr[j + 1] = key;

}

}

// Selection sort

void selectionSort(long int arr[], long int n)

{

long int i, j, midx;

for (i = 0; i < n - 1; i++) {

// Find the minimum element in unsorted array

midx = i;

for (j = i + 1; j < n; j++)

if (arr[j] < arr[min_idx])

midx = j;

// Swap the found minimum element

// with the first element

swap(&arr[midx], &arr[i]);

}

}

// Driver code

int main()

{

long int n = 10000;

int it = 0;

// Arrays to store time duration

// of sorting algorithms

double tim1[10], tim2[10], tim3[10];

printf("A_size, Bubble, Insertion, Selection\n");

// Performs 10 iterations

while (it++ < 10) {

long int a[n], b[n], c[n];

// generating n random numbers

// storing them in arrays a, b, c

for (int i = 0; i < n; i++) {

long int no = rand() % n + 1;

a[i] = no;

b[i] = no;

c[i] = no;

}

// using clock_t to store time

clock_t start, end;

// Bubble sort

start = clock();

bubbleSort(a, n);

end = clock();

tim1[it] = ((double)(end - start));

// Insertion sort

start = clock();

insertionSort(b, n);

end = clock();

tim2[it] = ((double)(end - start));

// Selection sort

start = clock();

selectionSort(c, n);

end = clock();

tim3[it] = ((double)(end - start));

// type conversion to long int

// for plotting graph with integer values

printf("%li, %li, %li, %li\n",

n,

(long int)tim1[it],

(long int)tim2[it],

(long int)tim3[it]);

// increases the size of array by 10000

n += 10000;

}

return 0;

}

You might be interested in
Let's say that you handle the IT systems administration for your company. There's a server inside of your organization that chec
kirill115 [55]

From server do some file transfer to client PC to sync to the server.

<u>Explanation:</u>

As IT System administrator if PC or client or workstation or laptop not connected to network more than 3 months from windows server we need to refresh the connection and redo the connection from server to the client to do sync the activities.

Moreover from domain server refresh and re sync activities to establishing the connection.

Go to client PC or workstation or desktop login log and logout from the PC and login to domain account by changing the password.

7 0
3 years ago
Survey Q. Non-scoring: What role is played in the team? (1 correct answer)
Maurinko [17]
I really don’t kno the answer to this question sorry
4 0
3 years ago
kara, darrell and jose all enjoy watching comedies online. kara and jose also enjoy watching dramas. using content-based filteri
vitfil [10]

Answer:

thrillers?

Explanation:

my best estimation would most likely be a thriller...

4 0
3 years ago
"last month, our sales rose when we increased prices by 15%, so we should raise our prices another 15% this month." which logica
LekaFEV [45]

In"last month, our sales rose when we increased prices by 15%, so we should raise our prices another 15% this month." the logical fallacy is Confusing a correlation for a cause-and-impact courting.

<h3>What is a logical fallacy?</h3>

A logical fallacy is a assertion that appears to be authentic till you observe the regulations of logic. Then, you recognize that it is not. Logical fallacies can regularly be used to deceive people – to trick them into believing something they in any other case wouldn't.

In many ways, the put up hoc ergo propter hoc fallacy is a particular subset of the fallacy in which a person might also additionally anticipate a causational courting from one that would simply be a wonderful correlation.

Read more about the fallacy :

brainly.com/question/1971023

#SPJ1

6 0
2 years ago
Your boss wants you to devise a way for remote contractors to be able to access the server desktop. There is one stipulation, ho
Sloan [31]
Not 100% sure but I can Definitely say not b or c. So you’re narrowed down to A and D.
3 0
3 years ago
Read 2 more answers
Other questions:
  • The first time that a particular visitor loads a web site page is called a(n) _____.
    5·1 answer
  • Data mining must usestatistics to analyze data.<br> True<br> False
    12·1 answer
  • Print and digital forms of communication, including television, newspapers, radio, and Internet, intended to convey information
    8·1 answer
  • A printer is connected locally on Computer1 and is shared on the network. Computer2 installs the shared printer and connects to
    10·1 answer
  • Which is the output of the formula =NOT(12+12=24) ?
    7·1 answer
  • What is the printout for the first statement in the main method?
    13·1 answer
  • তথ্য ও যোগাযোগ প্রযুক্তির প্রশ্ন(45)10 সংখ্যাটির সমতুল্য মান?
    14·1 answer
  • Most presentations use text:
    5·1 answer
  • Design a program using Python to subtract two numbers
    12·1 answer
  • I NEED THIS DONE NOW ASAP, PLS HELP ME
    13·2 answers
Add answer
Login
Not registered? Fast signup
Signup
Login Signup
Ask question!