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

Decimal equivalent of hex number 1A53, What is the decimal equivalent of he...

What is the decimal equivalent of hex number 1A53 ? Ans. 6739 is the decimal equivalent of Hex Number 1A53. From Hex Number to Decimal Number conversion is shown below: 1

Develop a calculator in masm, Assignment:  develop a calculator in MASM. ...

Assignment:  develop a calculator in MASM. Text chapters covered:  1 through 4, 5.4, 5.5, 6.3, 7.4 You will develop a "calculator" algorithm in MASM using reverse-polish nota

Determine the level of state decomposition, Determine the level of state de...

Determine the level of state decomposition The level of state decomposition must be determined by judgement. A too fine grained model is unsuitable, such as, modelling all poss

C programming, write a program to find the area under the curve y=f(x) betw...

write a program to find the area under the curve y=f(x) between x=a and x=b,integrate y=f(x) between the limits of a and b

What is core dump, Raises when accessing an unassigned memory location acce...

Raises when accessing an unassigned memory location accessing a null pointer

Hazard (computer architecture), Hazard (computer architecture): In the...

Hazard (computer architecture): In the computer architecture, a hazard is a possible problem that can occurs in a pipelined processor. It concern to the possibility of erroneo

System engineering hierarcy, develop system engineering hirarcy for public ...

develop system engineering hirarcy for public health care?

What is basic analog design, What is basic Analog Design? Analog design...

What is basic Analog Design? Analog design is rather challenging than digital design as analog circuits are sensitive to noise, operating voltages, loading circumstances and ot

what is feram?, Ferroelectric RAM is a random-access memory same in constr...

Ferroelectric RAM is a random-access memory same in construction to DRAM but uses a ferroelectric layer rather of a dielectric layer to achieve non-volatility. FeRAM is one of a gr

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