Order by pair comparisons: Difference between revisions

→‎{{header|C++}}: add c++ way using standard sort
(→‎{{header|C++}}: add c++ way using standard sort)
Line 30:
 
=={{header|C++}}==
===C++: Binary search insertion sort===
<lang cpp>#include <algorithm>
#include <iostream>
Line 74 ⟶ 75:
sortedItems.insert(spotToInsert, item);
}
PrintOrder(sortedItems);
return 0;
}</lang>
{{out}}
<pre>
Line 102 ⟶ 103:
</pre>
 
===C++: STL sort with custom comparator===
<lang cpp>#include <algorithm>
#include <iostream>
#include <vector>
 
using namespace std;
 
bool InteractiveCompare(const string& s1, const string& s2)
{
if(s1 == s2) return false; // don't ask to compare items that are the same
static int count = 0;
string response;
cout << "(" << ++count << ") Is " << s1 << " < " << s2 << "? ";
getline(cin, response);
return !response.empty() && response.front() == 'y';
 
void PrintOrder(const vector<string>& items)
{
cout << "{ ";
for(auto& item : items) cout << item << " ";
cout << "}\n";
}
 
int main()
{
vector<string> items
{
"violet", "red", "green", "indigo", "blue", "yellow", "orange"
};
sort(items.begin(), items.end(), InteractiveCompare);
PrintOrder(items);
return 0;
}</lang>
{{out}}
<pre>
(1) Is indigo < violet? y
(2) Is orange < indigo? y
(3) Is orange < indigo? y
(4) Is red < indigo? y
(5) Is green < indigo? y
(6) Is yellow < indigo? y
(7) Is blue < indigo? y
(8) Is blue < indigo? y
(9) Is red < orange? y
(10) Is green < red? n
(11) Is green < orange? n
(12) Is yellow < green? y
(13) Is yellow < orange? n
(14) Is blue < green? n
{ red orange yellow green blue indigo violet }
</pre>
 
=={{header|Commodore BASIC}}==
Anonymous user