Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- #include <fstream>
- #include <sstream>
- using namespace std;
- struct Operation {
- public:
- int amount;
- string title;
- string from;
- string to;
- int ID;
- };
- void heap(int arr[][], int size, int index)
- {
- int largest = index;
- int left = 2 * index + 1;
- int right = 2 * index + 2;
- if (left<size && arr[left][1]>arr[largest][1])
- largest = left;
- if (right<size && arr[right][1]>arr[largest][1])
- largest = right;
- if (largest != index)
- {
- swap(arr[index][1], arr[largest][1]);
- swap(arr[index][2], arr[largest][2]);
- heap(arr, size, largest);
- }
- }
- void heapsort2(int arr[][], int size)
- {
- for (int i = size / 2 - 1; i >= 0; i--)
- {
- heap(arr, size, i);
- }
- for (int j = size - 1; j >= 0; j--)
- {
- swap(arr[0][1], arr[j][1]);
- swap(arr[0][2], arr[j][2]);
- heap(arr, j, 0);
- }
- }
- int main() {
- Operation dane[10000];
- Operation enddane[1000];
- int amount;
- int id = 0;
- string title, from, to,temp;
- ifstream file("data3.txt");
- if (file.is_open())
- {
- while (file.good())
- {
- getline(file, temp, ',');
- getline(file, title, ',');
- getline(file, from, ',');
- getline(file, to);
- stringstream qwe(temp);
- qwe >> amount;
- dane[id].amount = amount;
- dane[id].title = title;
- dane[id].from = from;
- dane[id].to = to;
- dane[id].ID = id;
- id++;
- }
- file.close();
- }
- else cout << "Unable to open file";
- int tab[10000][2];
- for (int i = 0; i < 10000; i++)
- {
- tab[i][1] = dane[i].amount;
- tab[i][2] = i;
- }
- heapsort2(tab, 10000);
- for (int j = 0; j < 1000; j++)
- {
- enddane[j] = dane[tab[j][2]];
- }
- system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement