我的输出在下面,冒泡排序部分排序,'Battle Start Galatica'是一个字符串
排序前,
猫狗猴子梨熊击败甜菜战斗开始Galatica熊 熊是蜜蜂斑马哈密瓜仙人掌排序后
,
熊熊是熊击败甜菜战斗开始Galatica蜜蜂斑马 哈密瓜仙人掌猫狗猴子梨
你好,世界!
#include <iostream>
#include <vector>
#include "Sort.h"
int main() {
std::vector<std::vector<std::vector<std::string> > >
v1{ {{"cats", "dogs", "monkey", "pear"}, {"bears", "beat", "beets",
"Battle Start Galatica"}},
{{"bear", "bears", "be"}, {"bee", "zebra"}, {"cantaloupe",
"cactus"}}};
std::cout << "before sort" << std::endl;
std::cout << v1 << std::endl;
sort(v1);
std::cout << "after sort" << std::endl;
std::cout << v1 << std::endl;
std::cout << "Hello, World!" << std::endl;
return 0;
}
我将矢量转换为矢量并尝试对其进行排序 使用冒泡排序
template <typename T>
void sort(std::vector<T>& v)
{
for(int i = 0; i < v.size();i++)
{
bool swapped = false;
for(int j = 0; j < v.size()-i-1;j++)
{
if(v[j]>v[j+1])
{
swap(v,j,j+1);
swapped = true;
}
}
if(!swapped) break;
}
}
使用以下交换方法
template <typename T>
void swap(std::vector<T>& v, int i, int j)
{
T temp = v[i];
v[i] = v[j];
v[j] = temp;
}
除了泡泡之外,还有哪种方法可以完全排序或者使用什么方法?