Question
Using Merge Sort: (In Java) (Please screenshot or copy your output file in the answer) In this project, we combine the concepts of Recursion and
Using Merge Sort: (In Java) (Please screenshot or copy your output file in the answer)
In this project, we combine the concepts of Recursion and Sorting. Since the Java Collection API provides various built-in sorting capabilities, so we will focus on Merge Sort and have it applied to a file.
Please note that the focus of this project is on Merging and don't forget the following constraint:
1. Your RAM can only holds 30 records at most at any time;
2. Read the files into arrays, 30 records at a time.
3. Sort them and then write to a temporary output file.
4. So, with 116 input Art records you should have 4 temporary sorted files.
5. You then merge two files into one, so you will then create more temp files.
6. Eventually you will have two temp files left and you merge these two into the file output file.
7. Keep all the temperorary files and their output.
Read the programming steps for guidance.
File specifications:
a) The input file that you are going to use is the tab-delimited text file "p1arts.txt".
b) the output file that you are going to produce using File I/O is also the tabdelimited text file called "p6Out.txt" which is sorted ascendingly on artistID and then artID both.
Programming Steps:
1) Create a class called Art that implements Comparable interface.
2) Read part of the file and use Merge Sort to sort the array of Art and then write them to a file.
3) Read some more records from the file, sort them, and merge them with the sorted file on the disk.
4) Repeat the above step until it is all done.
5) Sort Artist ID first and then Art ID.
6) Sort 30 Art IDs at a time. FIrst 30, then other 30, then other 30 and so on.
7) Create temporory files to store the sorted records in.
8) After sorting all Art IDs, merge them and write to output file "p6Out.txt"
Example output follows:
(sample output)
ArtistID ArtID Title Appraised Value
1 1038 Spring Flowers 800 1 1050 Cattle Ranch 10000 1 1103 Trail End 8000 2 1042 Coffee on the Trail 7544 3 1013 Superstitions 78000 3 1021 Bead Wall 14000 3 1034 Beaver Pole Jumble 28000 3 1063 Asleep in the Garden 110000 4 1070 Beginnings 27500 5 1036 Blackhawk 25500 6 1017 Brittlecone 1300 6 1053 Blue Eyed Indian 40000 6 1056 Cavalry Is Coming 1900 6 1075 Western Boots and Spurs 6000 6 1077 Bull Riding 5200 7 1049 Buttercup with Red Lip 400 8 1018 Mountain Scene 2500 9 1055 Starlit Evening 9500 10 1096 Ceremonial Sticks 15000 11 1090 Off the Grid 8000 12 1003 Spring Flowers 2400 13 1081 Coming Under Fire 650 14 1039 Treachery 20000 14 1102 Crying Hats 10000 15 1073 Dancing in the Light 4000 16 1052 American Rodeo 3500 17 1059 Dwelling 16000 18 1005 The Hang 8000 19 1011 Eve 975 20 1099 Watch That Rattler 900 21 1037 Floating World 2350 22 1109 Friends 16000 23 1084 Crossing the Platt River 2200 24 1072 Funnel 4500 25 1115 Starry Night 8500 26 1008 End of the Path 1900 27 1112 Dark Canyon 8000 28 1009 Amen 3000 28 1030 Ash Bench 13000 28 1043 Creosote Bushes 18000 28 1078 Chuckwagon 32000 29 1041 Night Version 3800 29 1082 Spring Flowers 20000 30 1116 Apache Warrior 23000 31 1029 Horseshoe Falls 15000 32 1006 House Remembered 700 33 1046 Immediate Gratification 1500 34 1031 Inside/Out 3500 35 1107 Striking It Rich 1750 36 1051 Night Version 7000 37 1088 Lessons 3700 38 1045 Leaf Patterns 2100 38 1100 Hungry Cowboys 750 39 1094 Life Is Sweet 25000 40 1106 Horse Corral 12500 41 1062 Cowboy and Saddle 18000 42 1032 Rising Sun 2000 42 1060 Story Sticks 650 43 1044 Mexican Fiesta 14000 44 1047 Medicine Man 2500 45 1014 Plenty 500 46 1015 Punch 10000 47 1023 Shooting the Rapids 1300 47 1027 Mountain Climber 4700 47 1035 Nature/Nurture 1300 47 1040 Night on the Praire 1300 47 1065 Moonlite 1300 47 1092 Dressing Up 1300 48 1024 Spirit and Nature 592 49 1067 Owl in Flight 7000 50 1001 Red Rock Mountain 18000 50 1028 Tired Cowboy 4700 50 1054 Snake Charmer 4500 50 1068 Moonlight 9750 50 1069 Renaissance 5500 50 1113 Shadow House 5500 50 1114 Storytelling at the Campfire 18000 51 1064 Spirit Columns 7000 52 1002 Offerings 10000 53 1089 Life Lessons 4125 54 1091 Stone Palette 11500 55 1074 Storm on the Rise 8000 56 1098 Sweet Project 592 57 1048 Comfy Chair 800 58 1101 The Red Door 10000 59 1080 The Dust Behind 18000 60 1058 The Gathering 250 61 1019 The White Heart 9300 61 1095 The Spirit 20000 62 1079 Carrying the Mail 8000 62 1093 Antelopes 12500 62 1110 Three Sisters 6500 63 1085 Traces 20000 64 1004 Seeking Shelter 52000 64 1083 Untitled 2500 65 1016 Untitled 6000 66 1026 Untitled (couple) 4000 66 1057 Untitled 4500 67 1086 Untitled (desert landscape) 18000 68 1025 Profile of a Woman 625 69 1022 The Cowboy 4200 70 1104 Untitled 1800 71 1010 Untitled (land with adobe) 800 72 1111 Untitled (man and crucifix) 3200 73 1020 Untitled (Man holding coat) 3000 74 1012 Man on Horseback 8000 75 1097 Untitled (Sea) 2800 76 1066 Untitled (still life) 19500 77 1033 Untitled (Woman abstract) 2500 77 1108 Untitled Mural 400 78 1061 Untitled Mural 3520 79 1071 Ride the Rapids 300 79 1076 Ride the Bronco 1500 80 1105 Meteor Show 10000 81 1087 Three Woman 20000 82 1007 Homage to the Ancestors 1200
p1arts.txt:
1001 Red Rock Mountain 50 18000 1002 Offerings 52 10000 1003 Spring Flowers 12 2400 1004 Seeking Shelter 64 52000 1005 The Hang 18 8000 1006 House Remembered 32 700 1007 Homage to the Ancestors 82 1200 1008 End of the Path 26 1900 1009 Amen 28 3000 1010 Untitled (land with adobe) 71 800 1011 Eve 19 975 1012 Man on Horseback 74 8000 1013 Superstitions 3 78000 1014 Plenty 45 500 1015 Punch 46 10000 1016 Untitled 65 6000 1017 Brittlecone 6 1300 1018 Mountain Scene 8 2500 1019 The White Heart 61 9300 1020 Untitled (Man holding coat) 73 3000 1021 Bead Wall 3 14000 1022 The Cowboy 69 4200 1023 Shooting the Rapids 47 1300 1024 Spirit and Nature 48 592 1025 Profile of a Woman 68 625 1026 Untitled (couple) 66 4000 1027 Mountain Climber 47 4700 1028 Tired Cowboy 50 4700 1029 Horseshoe Falls 31 15000 1030 Ash Bench 28 13000 1031 Inside/Out 34 3500 1032 Rising Sun 42 2000 1033 Untitled (Woman abstract) 77 2500 1034 Beaver Pole Jumble 3 28000 1035 Nature/Nurture 47 1300 1036 Blackhawk 5 25500 1037 Floating World 21 2350 1038 Spring Flowers 1 800 1039 Treachery 14 20000 1040 Night on the Praire 47 1300 1041 Night Version 29 3800 1042 Coffee on the Trail 2 7544 1043 Creosote Bushes 28 18000 1044 Mexican Fiesta 43 14000 1045 Leaf Patterns 38 2100 1046 Immediate Gratification 33 1500 1047 Medicine Man 44 2500 1048 Comfy Chair 57 800 1049 Buttercup with Red Lip 7 400 1050 Cattle Ranch 1 10000 1051 Night Version 36 7000 1052 American Rodeo 16 3500 1053 Blue Eyed Indian 6 40000 1054 Snake Charmer 50 4500 1055 Starlit Evening 9 9500 1056 Cavalry Is Coming 6 1900 1057 Untitled 66 4500 1058 The Gathering 60 250 1059 Dwelling 17 16000 1060 Story Sticks 42 650 1061 Untitled Mural 78 3520 1062 Cowboy and Saddle 41 18000 1063 Asleep in the Garden 3 110000 1064 Spirit Columns 51 7000 1065 Moonlite 47 1300 1066 Untitled (still life) 76 19500 1067 Owl in Flight 49 7000 1068 Moonlight 50 9750 1069 Renaissance 50 5500 1070 Beginnings 4 27500 1071 Ride the Rapids 79 300 1072 Funnel 24 4500 1073 Dancing in the Light 15 4000 1074 Storm on the Rise 55 8000 1075 Western Boots and Spurs 6 6000 1076 Ride the Bronco 79 1500 1077 Bull Riding 6 5200 1078 Chuckwagon 28 32000 1079 Carrying the Mail 62 8000 1080 The Dust Behind 59 18000 1081 Coming Under Fire 13 650 1082 Spring Flowers 29 20000 1083 Untitled 64 2500 1084 Crossing the Platt River 23 2200 1085 Traces 63 20000 1086 Untitled (desert landscape) 67 18000 1087 Three Woman 81 20000 1088 Lessons 37 3700 1089 Life Lessons 53 4125 1090 Off the Grid 11 8000 1091 Stone Palette 54 11500 1092 Dressing Up 47 1300 1093 Antelopes 62 12500 1094 Life Is Sweet 39 25000 1095 The Spirit 61 20000 1096 Ceremonial Sticks 10 15000 1097 Untitled (Sea) 75 2800 1098 Sweet Project 56 592 1099 Watch That Rattler 20 900 1100 Hungry Cowboys 38 750 1101 The Red Door 58 10000 1102 Crying Hats 14 10000 1103 Trail End 1 8000 1104 Untitled 70 1800 1105 Meteor Show 80 10000 1106 Horse Corral 40 12500 1107 Striking It Rich 35 1750 1108 Untitled Mural 77 400 1109 Friends 22 16000 1110 Three Sisters 62 6500 1111 Untitled (man and crucifix) 72 3200 1112 Dark Canyon 27 8000 1113 Shadow House 50 5500 1114 Storytelling at the Campfire 50 18000 1115 Starry Night 25 8500 1116 Apache Warrior 30 23000
I am providing the sample programs that you might need:
Name.java:
/** A mutable class that represents a person's name. @author Frank M. Carrano @author Timothy M. Henry @version 4.0 */ public class Name implements Comparable{ private String first; // First name private String last; // Last name public Name() { this("", ""); } // end default constructor public Name(String firstName, String lastName) { first = firstName; last = lastName; } // end constructor public void setName(String firstName, String lastName) { setFirst(firstName); setLast(lastName); } // end setName public String getName() { return toString(); } // end getName public void setFirst(String firstName) { first = firstName; } // end setFirst public String getFirst() { return first; } // end getFirst public void setLast(String lastName) { last = lastName; } // end setLast public String getLast() { return last; } // end getLast public void giveLastNameTo(Name aName) { aName.setLast(last); } // end giveLastNameTo public String toString() { return first + " " + last; } // end toString public int compareTo(Name other) { int result = last.compareTo(other.last); // If last names are equal, check first names if (result == 0) result = first.compareTo(other.first); return result; } // end compareTo } // end Name
Artist.java:
/** A mutable class that represents a person's name. @author Frank M. Carrano @author Timothy M. Henry @version 4.0 */ public class Artist implements Comparable, java.io.Serializable { private String first; // First name private String last; // Last name public Artist() { this("", ""); } // end default constructor public Artist(String firstName, String lastName) { first = firstName; last = lastName; } // end constructor public void setName(String firstName, String lastName) { setFirst(firstName); setLast(lastName); } // end setName public String getName() { return toString(); } // end getName public void setFirst(String firstName) { first = firstName; } // end setFirst public String getFirst() { return first; } // end getFirst public void setLast(String lastName) { last = lastName; } // end setLast public String getLast() { return last; } // end getLast public void giveLastNameTo(Name aName) { aName.setLast(last); } // end giveLastNameTo public String toString() { return first + " " + last; } // end toString public int compareTo(Artist other) { int result = last.compareTo(other.last); // If last names are equal, check first names if (result == 0) result = first.compareTo(other.first); return result; } // end compareTo } // end Name
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started