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

What do you meant by dreamweaver, A Web site is a set of linked documents w...

A Web site is a set of linked documents with shared attributes, like related topics, a similar design or a shared purpose. Macromedia Dreamweaver is a site creation and management

Explain about quarter inch cartridge tapes, Q. Explain about Quarter Inch C...

Q. Explain about Quarter Inch Cartridge Tapes? Quarter Inch Cartridge Tapes (QIC Standard): These tape cartridges record information sequentially in a track with one head. Wh

What is a co-processor, What is a co-processor? What is its use in a typica...

What is a co-processor? What is its use in a typical microprocessor based system. 8087 NDP (numerical data processor) is also called math co-processor which is used in parallel

Define parsing, Define Parsing Parsing is the method of analyzing a te...

Define Parsing Parsing is the method of analyzing a text, made up of a sequence of tokens, to define its grammatical structure with respect to a given formal grammar. Parsing

Characteristics of magnetic disk, Q. Characteristics of Magnetic disk? ...

Q. Characteristics of Magnetic disk? Tracks and Sectors: Disk is divided in concentric rings known as tracks. Thus a track is one complete rotation of disk underneath read/wr

Construct the finite automata, Give the regular expression of the set of al...

Give the regular expression of the set of all even strings over the alphabet {a, b} along with at least one of the two substrings aa or bb. As well construct the finite automata wh

What are the advantages of a smart card, What are the advantages of a Smart...

What are the advantages of a Smart Card? Advantages of Smart Card as given below: a. This provides convenience and assists for multiple currencies over borders. b. Us

What is "at exit-command", What is "at exit-command:? The flow logic K...

What is "at exit-command:? The flow logic Keyword at EXIT-COMMAND is a special addition to the MODULE statement in the Flow Logic .AT EXIT-COMMAND lets you call a module befor

Example of calculate maximum access time & cost of switch, Calculate the ma...

Calculate the maximum access time that can be permitted for the data and control memories in a TSI switch with a single input and single output trunk multiplexing 2500 channels. Al

what is ecc memory, Error-correcting code memory (ECC memory) is a type of...

Error-correcting code memory (ECC memory) is a type of computer data storage that can notice and correct the more general kinds of internal data corruption. ECC memory is used in m

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