不适用sort,自己创建函数
时间: 2024-10-24 17:09:23 浏览: 3
如果你想在C++中自己创建一个函数对数组或容器进行稳定的升序排序,你可以使用“插入排序”(Insertion Sort)作为基础。插入排序对于小规模的数据集效率较高,并且因为它是一种稳定的排序算法,可以保持相等元素的原始顺序。
下面是一个简单的示例,我们将创建一个名为`custom_stable_sort`的函数,它接受一个`std::vector<int>`作为输入并对其进行稳定排序:
```cpp
#include <iostream>
#include <vector>
void custom_stable_sort(std::vector<int> &nums) {
for (size_t i = 1; i < nums.size(); ++i) {
int key = nums[i];
size_t j = i - 1;
// 检查左邻元素是否小于当前元素,如果是,则将它们交换位置直到找到合适的位置
while (j >= 0 && nums[j] > key) {
nums[j + 1] = nums[j]; // 将大数值向右移动
--j;
}
nums[j + 1] = key; // 插入关键值到正确位置
}
}
int main() {
std::vector<int> my_array = {4, 2, 6, 1, 8, 2, 5}; // 需要排序的数组
custom_stable_sort(my_array);
// 输出排序后的结果
for (const auto &num : my_array) {
std::cout << num << " ";
}
std::cout << "\n";
return 0;
}
```
这个函数的工作原理类似于手洗牌游戏中把新牌插入到正确位置的过程,保证了相等元素之间的顺序不变。
阅读全文