-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathSortingTechniques.java
More file actions
127 lines (100 loc) · 4.16 KB
/
SortingTechniques.java
File metadata and controls
127 lines (100 loc) · 4.16 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
package sorting_techniques;
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class SortingTechniques extends JFrame implements ActionListener {
/**
*
*/
private static final long serialVersionUID = 1L;
SortingButtons sortingPanel;
SortingProperties propertiesPanel;
SortingResults resultsPanel;
WinAlgorithm winPanel;
JPanel panelWest, panelEast;
boolean listGenerated = false;
SortingAlgorithms sort;
GenerateLists genList;
String listProperties = "";
public SortingTechniques() {
sort = new SortingAlgorithms(0,0,0);
panelWest = new JPanel();
panelEast = new JPanel();
sortingPanel = new SortingButtons();
propertiesPanel = new SortingProperties();
resultsPanel = new SortingResults();
winPanel = new WinAlgorithm();
panelWest.add(sortingPanel, BorderLayout.CENTER);
this.add(panelWest, BorderLayout.WEST);
panelEast.add(winPanel, BorderLayout.NORTH);
panelEast.add(propertiesPanel, BorderLayout.CENTER);
panelEast.add(resultsPanel, BorderLayout.SOUTH);
this.add(panelEast, BorderLayout.CENTER);
//Adding ActionListener
//ActionListener Sorting Buttons panel
sortingPanel.getInsertButton().addActionListener(this);
sortingPanel.getSelectButton().addActionListener(this);
sortingPanel.getQuickButton().addActionListener(this);
sortingPanel.getMergeButton().addActionListener(this);
sortingPanel.getHeapButton().addActionListener(this);
sortingPanel.getRadixButton().addActionListener(this);
//ActionListener List Properties
propertiesPanel.getCreateListButton().addActionListener(this);
}
public void actionPerformed(ActionEvent event) {
if (event.getSource() == propertiesPanel.getCreateListButton()) {
genList = new GenerateLists(propertiesPanel.getLengthSlider().getValue());
if(propertiesPanel.getInOrderRadButton().isSelected()) {
genList.inOrder();
listProperties = "InOrder";
}
else if(propertiesPanel.getRevOrderRadButton().isSelected()) {
genList.reverseOrder();
listProperties = "ReverseOrder";
}
else if(propertiesPanel.getAlmostRadButton().isSelected()) {
genList.almostOrder();
listProperties = "AlmostOrder";
}
else if(propertiesPanel.getRandRadButton().isSelected()) {
genList.randomOrder();
listProperties = "Random";
}
}
else if(listGenerated == true && event.getSource() == sortingPanel.getInsertButton()) {
sort.insertionSort(genList.getList());
if(sort.compareWinner()) { winPanel.winField.setText("Insertion Sort"); }
}
else if(listGenerated == true && event.getSource() == sortingPanel.getSelectButton()) {
sort.selectionSort(genList.getList());
if(sort.compareWinner()) { winPanel.winField.setText("Selection Sort"); }
}
else if(listGenerated == true && event.getSource() == sortingPanel.getQuickButton()) {
sort.quickSort(genList.getList());
if(sort.compareWinner()) { winPanel.winField.setText("QuickSort"); }
}
else if(listGenerated == true && event.getSource() == sortingPanel.getMergeButton()) {
sort.mergeSort(genList.getList(), 0, genList.getList().length-1, true);
if(sort.compareWinner()) { winPanel.winField.setText("Merge Sort"); }
}
else if(listGenerated == true && event.getSource() == sortingPanel.getHeapButton()) {
sort.heapSort(genList.getList());
if(sort.compareWinner()) { winPanel.winField.setText("Heap Sort"); }
}
else if(listGenerated == true && event.getSource() == sortingPanel.getRadixButton()) {
sort.radixSort(genList.getList(), genList.getList().length);
if(sort.compareWinner()) { winPanel.winField.setText("Radix Sort");}
}
if(listGenerated == true) {
resultsPanel.getNField().setText(Integer.toString(propertiesPanel.getLengthSlider().getValue()));
resultsPanel.getDataTypeField().setText(listProperties);
resultsPanel.getSortField().setText(sort.getSort());
resultsPanel.getCompField().setText(Integer.toString(sort.getComps()));
resultsPanel.getMvmtField().setText(Integer.toString(sort.getMvmts()));
resultsPanel.getTimeField().setText(Long.toString(sort.getTime()));
}
listGenerated = true;
}
}