Sorting, Computer Engineering

Assignment Help:

Different sorting algorithm will be discussed in the lecutres. The task in this worksheet is to write a funtions based on the Quicksort algorithm.

When sorting an array of objects some objects might swap places. This can by very expensive in terms of time and space, as each swap requires to copy an object. We have seen in the previous part of the module that this could potential be computationally expensive (deep copy).
The function that you should implement takes an array of a template class as pass-by-reference. Instead of sorting this array it returns a new array of int. In this new array the first number is the index of the smallest object in the original array, the next number is the index of the 2nd smallest object in the original array and so on.
Example, for parameter ["michael", "sam", "chris", "tom", "anna", "nick"]
the function should return [4, 2, 0, 5, 1, 3]

The function declaration is

        template int * index(const T & array,int size)

Your function should be based on the quicksort algorithm. The given array of objects should not be altered. Hint: You might want to consider to write an additional function that can be recursively called.
 
A test program is provided . To compile the program you can use

#include

#include"assessment3.cpp"

#include

#include

#include

using namespace std;

int main() {

   int size = 10;

   int *data=new int[size];

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

      data[i]=rand()% 1000;

   cout << endl<<"unsorted"<

 

   for(int i=0;i

      cout<

   int * indexA = index(data,size);

   cout<

   for(int i=0;i

      cout<

   cout << endl;

   for(int i=0;i

      cout<

   cout << endl;

   delete [] data;

   delete [] indexA;

  return 0;

}


Related Discussions:- Sorting

Why pointer variable to a function as an argument, Why pointer variable som...

Why pointer variable sometimes desirable to pass a pointer to a function as an argument? Frequently, a called function needs to make changes to objects declared in the calling

General registers in a processor, In this segment, we will give very brief ...

In this segment, we will give very brief details of registers of a RISC system known as MIPS. MIPS is a register-to-register or load/store architecture and employs three address

Can we run matlab without graphics, Sometimes you may need to run scripts w...

Sometimes you may need to run scripts which have plotting commands without displaying the plots and without going into the script to comment out the commands. An example: if you're

Automatic typewriter in information distribution, Automatic typewriter : I...

Automatic typewriter : It is a power-driven machine, which automatically types a standard pro forma from a previously punched or stencilled master. When the master is placed on th

What are compilers and interpreters, What are compilers and interpreters? ...

What are compilers and interpreters? Compiler and Interpreter: These are two types of language translators. A compiler changes the source program (user-written program) int

Show the noframes tag, Q. Show the Noframes Tag? tag can be used for t...

Q. Show the Noframes Tag? tag can be used for those browsers which aren't able to interpret tags. Even though most, if not all, of your visitors would

Assembly directives and pseudo-ops, Assembly directives and pseudo-ops: ...

Assembly directives and pseudo-ops: Assembly directives are which instructions that executed by the assembler at assembly time, not by the CPU at run time. They can build the

What is an i/o buffer, What is an I/O buffer? I/O buffer: One ty...

What is an I/O buffer? I/O buffer: One type of input-output requirement arises from devices which have a very high character density as disks and tapes. With these chara

Explain parallelism based on grain size in detail, Parallelism based on Gra...

Parallelism based on Grain size Grain size : Grain size/ Granularity are a measure that defines how much computation is involved in a process. Grain size is concluded by count

What is synchronous message passing, Q. What is Synchronous message passing...

Q. What is Synchronous message passing? In Synchronous message passing is executed on synchronous communication network.  In that case sender and receiver processes should be

Write Your Message!

Captcha
Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd