#include <iostream>
#include <fstream>
#include <cstdlib>
#include <vector>
#include <string>
using namespace std;
void alpha_sorting(vector<string>& a);
void swap_function(vector<string>& x,int& l);
string alpha_least(vector<string>& list,int& idx);
int min_word_index(string& min,vector<string>& listed);
int main(){
ifstream infile;
infile.open("words.txt");
if(!infile.is_open()){
cout << "Could not open the input file" << endl;
exit(EXIT_FAILURE);
}
vector<string> words;
string temp;
while(infile >> temp){
words.push_back(temp);
}
sort_words_alphabetically(words);
cout << "Those words in alphabetical order are " << endl;
return 0;
}
void alpha_sorting(vector<string>& a){
int index = 0;
while(index < a.size()){
swap_min_to_top(a, index);
index++;
}
for(int i = 0;i < a.size();i++){
cout << a[i] << endl;
}
}
void swap_function(vector<string>& x,int& l){
string temporary;
temporary = x[l];
wrdx[loc] = minimum_word(x, l);
int min_idx = min_word_index(x[l], x);
x[min_idx] = temporary;
}
string alpha_least(vector<string>& list,int& idx){
string temp = list[idx];
for(int i = idx;i < list.size();i++){
if(list[i] < temp){
temp = list[i];
}
}
return temp;
}
int min_word_index(string& min,vector<string>& listed){
for(int i = 0;i < listed.size();i++){
if(min == listed[i]){
return i;
}
}
return -1;
}
大家好,
简而言之,作业要求我们从文件中读取单词,然后按字母顺序排列所有单词并将其显示在屏幕上。
该分配明确禁止使用诸如sort等的c ++函数,并期望我们创建自己的算法来安排此向量。
我的算法在列表中找到了最小字符串(字母中的那个)(使用'
有人可以找到我的代码有什么问题吗?
最佳答案
快速浏览以下是一个问题,
在swap_min_to_top
中,wrdx[loc] = minimum_word(wrdx, loc);
接着int min_idx = min_word_index(wrdx[loc], wrdx);
这将使您的min_idx
始终等于loc
(因为您刚刚为其分配了)
您可能希望min_word_index
从1 + idx开始处理,而不是从零开始