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

Types of structure charts, Types of Structure Charts Transaction struc...

Types of Structure Charts Transaction structure - control module calls subordinate modules, each of which handles a certain transaction More afferent processes Le

Flow charts, n=(x*2)/(1=0) the value x=0 and is used to stop the algerithin...

n=(x*2)/(1=0) the value x=0 and is used to stop the algerithin.The calculation is repeated using values of x=0 is input. There is only a need to check for error positions. The va

Explain about mmx architecture, Explain about MMX architecture MMX arc...

Explain about MMX architecture MMX architecture introduces new packed data types. Data types are eight packed, consecutive 8-bit bytes; four packed, consecutive 16-bit words;

State the term- interviewing, State the term- Interviewing This involv...

State the term- Interviewing This involves a one to one question & answer session between analyst and customer/employee. A good method if analyst wants to probe deeply into on

Difference between narrative form and documentary form, Question: (a) E...

Question: (a) Explain clearly the difference between a Proposal and a Treatment for a video production project. (b) Explain clearly the difference between Narrative form an

Micro-programmed control, Q. MICRO-PROGRAMMED CONTROL? A substitute to ...

Q. MICRO-PROGRAMMED CONTROL? A substitute to a hardwired control unit is a micro-programmed control unit in which logic of the control unit is specified by a micro-program. A m

Define how ptrace is used by debuggers, State how Shared Memory is used for...

State how Shared Memory is used for inter process communication. Define how ptrace is used by debuggers.  What are modules? Explain how data mapping takes place among modules

Difference between char a[] = "string", What is the difference between char...

What is the difference between char a[] = "string"; and char *p = "string";? Ans) In the first case 6 bytes are assigned to the variable a which is fixed, where as in the secon

Conversion of decimal number 25.5 into binary number, Conversion of decimal...

Conversion of decimal number 25.5 into binary number Ans. There is integer part is 25 and fractional part is 0.5.  Firstly convert the integer part 25 in its equal to binary numb

Execute sparse matrix dynamically, To execute sparse matrix dynamically, Wh...

To execute sparse matrix dynamically, Which data structure is used Linked List data structure is used to execute sparse matrix dynamically

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