挿入ソートアルゴリズムを使用して配列をソートしようとしています。配列には、フィールド (テキスト ファイルから入力) とフィールド (特定の単語がテキスト ファイルに出現する回数を測定するため)WordNode
を含む要素が格納されます。単語が頻度 (最低から最高) で並べ替えられるように並べ替えを実装しましたが、頻度が等しい場合はアルファベット順に並べ替えたいと考えています。2 つの異なる基準を同時に使用して並べ替えるにはどうすればよいですか? 以下は私のソートコードです。word
frequency
public static void sort(ArrayUnorderedList<WordNode> array) {
//create stacks for insertion sort
LinkedStack<WordNode> sorted = new LinkedStack<WordNode>();
LinkedStack<WordNode> temp = new LinkedStack<WordNode>();
//while the array has elements to be sorted
while(!array.isEmpty()) {
//remove current element from array
WordNode currentNode = array.removeFirst();
//while the sorted stack meets sorting criteria
while((!sorted.isEmpty()) && (sorted.peek().getFrequency() < currentNode.getFrequency())) {
//push elements to temp stack
temp.push(sorted.pop());
}
//push current element to sorted stack
sorted.push(currentNode);
//while the temp stack has elements to be replaced
while(!temp.isEmpty()) {
//push elements to sorted stack
sorted.push(temp.pop());
}
}
//replace sorted elements in array
while(!sorted.isEmpty()) {
array.addToRear(sorted.pop());
}
}