Write a program that will attempt to find a Hamiltonian path in a graph G by doing the following: Given a Graph G, find a minimum spanning tree using a Kruskels-like algorithm with the modification that the edge being considered to be added to the minimum spanning tree can only be added if it meets 2 conditions: 1)will not form a cycle in the MST (standard for Kruskels) 2)will not cause an VERTICE to now have degree > 2 The sorting routine that sorts the edge has to use the following routine (I have already done this part) By using Quicksort: a) Instead of using 1 pivot and therefore 2 recursive calls to QUICKSORT, use 2 pivots and therefore 3 recursive called to your QUICKSORT. b) Instead of randomly (picking the last elements of the subarray to be sorted) getting 2 pivots, use an average time O(n) algorithm to select 2 pivots such that the pivots are the 1/3rd ordered statistic and the 2/3rd ordered statistic of the input.
## Deliverables
1) Complete and fully-functional working program(s) in executable form as well as complete source code of all work done. 2) Installation package that will install the software (in ready-to-run condition) on the platform(s) specified in this bid request. 3) Complete ownership and distribution copyrights to all work purchased.
## Platform
Unix