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

Explain the logic symbols - flip flops, Explain the Logic symbols - Flip Fl...

Explain the Logic symbols - Flip Flops? These flip-flops are as well called Master-Slave flip-flops simply because their internal construction is divided into two sections. Th

Explain about RISC architecture, Q. Explain about RISC ARCHITECTURE? Le...

Q. Explain about RISC ARCHITECTURE? Let's first list some significant considerations of RISC architecture: 1. RISC functions are kept simple unless there is a very good reas

What layers are covered under end to end layer connectivity, What layers ar...

What layers are covered under end to end layer connectivity? The layers 4 to 7 of ISO-OSI reference model communicate along with peer entities into the end systems. There is n

No class can derive, Make a console application. Add class 'Account' having...

Make a console application. Add class 'Account' having variables as num (integer) name (String), bal (double), ac_code (byte). Describe four different constructors to initialize th

Explain is cgi a script or a program, The distinction is semantic. Traditio...

The distinction is semantic. Traditionally, compiled executables (binaries) are known as programs, and interpreted programs are usually known as scripts. In the context of CGI, the

Show types under which networks will be divided, What are the two broad typ...

What are the two broad types under which Networks will be divided? Ans: All computer networks fit in one of the two dimensions specifically: a)  Transmission Technology, thi

What is visibility give uml notation, What is visibility give UML notation?...

What is visibility give UML notation? Visibility refers to the ability of a process to reference a feature from another class and has possible valued of public, private, protec

Design requirements of combinational logic, What are the requirements to de...

What are the requirements to design Combinational Logic ? Ans . Design Requirements of Combinational Logic:- (i) By the specifications of circuit, we find out the

Real-time systems and control, A group report with no more than three stude...

A group report with no more than three students per group is to be handed in to explain your design procedures and simulation results. Representative graphical system outputs (clea

Define buffering, Define buffering.  A buffer is a memory area that kee...

Define buffering.  A buffer is a memory area that keeps data while they are transferred among two devices or among a device and an application. Buffering is done for three reas

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