У меня проблемы с выдачей правильного результата в этом виде выбора.Я чувствую, что код правильный и логика работает, но, насколько я понимаю, результат, который я получаю, неверен.Вот мой код:
#include "stdafx.h"
#include <iostream>
#include <string>
#include <fstream>
#include <sstream>
using namespace std;
// Function prototypes
void selectionSort(string[], int);
string linearSearch(string[]);
// Declare variables
const int MAX_FRIENDS = 250;
int currentIteration = 0;
Main:
int main()
{
// Declare stream file
fstream names;
names.open("myFriends.txt");
string friends[MAX_FRIENDS];
while(getline(names,friends[currentIteration])){
currentIteration++;
}
cout << "Before Sort:\n\n";
for(int i = 0; i < currentIteration; i++){
cout << "Index " << i << ": " << friends[i] << endl;
}
selectionSort(friends,5);
cout << "\nAfter Sort: \n\n";
for(int i = 0; i < currentIteration; i++){
cout << "Index " << i << ": " << friends[i] << endl;
}
system("pause");
return 0;
}
Объявление функции
void selectionSort(string arr[], int num){
// Declare Necessary Variables
int startScan,minIndex, index;
string minValue;
for(startScan = 0; startScan < (num - 1); startScan++){
index = startScan;
minIndex = startScan;
minValue = arr[startScan];
for(index = (startScan + 1); index < num; index++){
if(arr[index] < minValue){
minValue = arr[index];
minIndex = index;
}
index++;
}
arr[minIndex] = arr[startScan];
arr[startScan] = minValue;
}
}
Я работаю с текстовым файлом myFriends, который содержит следующие именав следующем порядке
- Сэмюэл Саид
- Луиза Стивен
- Стивен Уэйкфилд
- Пэтти Андерсон
- Джон Гувер
Когда я запускаю сортировку выбора, я получаю эту последовательность обратно в следующем порядке.
- Луиза Стивен
- Джон Гувер
- Патти Андерсон
- Сэмюэль Саид
- Стивен Уэйкфилд
Насколько мне известно ASCII, это неправильные значения.Пожалуйста, сообщите.