Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cmath>
- #include <string>
- using namespace std;
- void second_sort (string *arr, int index, int first)
- {
- int razmer = arr[index].size();
- int skolko = index+first+1;
- int l = 0;
- for (int i = first+1; i < skolko; i++)
- for (int j = first; j < skolko - i; j++)
- if (arr[j] > arr[j+1])
- swap (arr[j], arr[j+1]);
- }
- void first_sort (string *arr, int n)
- {
- for (int i=1; i<n; ++i)
- for (int j=0; j<n-i; j++)
- if (arr[j].size() > arr[j+1].size())
- swap (arr[j], arr[j+1]);
- }
- int main()
- {
- cout.flush();
- int n = 0, index = 0;
- cin >> n;
- string *arr = new string[n];
- for (int i = 0; i<n; i++)
- {
- string buffer;
- cin >> buffer;
- arr[i] = buffer;
- }
- first_sort(arr, n);
- int i = n-1, shet=0;
- while(i > 0)
- {
- while (arr[i].size() == arr[i-1].size())
- {
- index++;
- i--;
- }
- shet = i;
- if (index != 0)
- {
- second_sort (arr, index, shet);
- index = 0;
- }
- i--;
- }
- for (int i = 0; i<n; i++)
- cout << arr[i] << " ";
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement