我有一个列表,包括基于x和y位置的一堆位置,我正在采取两个位置的差异.因此,例如我有重复,如(0,1),(1,0)和(1,2),(2,1)和(2,3),(3,2).我想删除列表中的所有重复项以实现我的目标.是否有捷径可寻?我一直在尝试构建算法,但这很难.因为我有90个位置,并且不容易确定何时复制自己
我已经实现了插入排序,我猜它很好.它从文件读取并正确排序它们输入10,100,1000,10000,10000.
但是,当我给出一百万输入时,它什么也没做.我甚至等了10分钟检查它是否太慢了.
我动态创建了我的数组,并尝试合并排序.它完美地工作了一百万输入但我无法理解为什么只有插入排序算法不能用于一百万输入.这是代码的一部分完成工作;
#include <iostream>
#include <fstream>
using namespace std;
void InsertionSort(int* array, int& size);
int main()
{
int size;
ifstream myfile("data.txt");
myfile.open("data.txt");
cout << "How many elements do you want to read" << endl;
cin >> size;
int* array = new int[size];
for (int i = 0; i < size; i++) {
myfile >> array[i];
}
InsertionSort(array, size);
delete[] array;
}
void InsertionSort(int* array, int& size)
{
int temp, j;
for (int i = 1; i < size; i++) …Run Code Online (Sandbox Code Playgroud)