Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //============================================================================
- // Name : Algo6Module2.cpp
- // Author :
- // Version :
- // Copyright : Your copyright notice
- // Description : Hello World in C++, Ansi-style
- //============================================================================
- #include <iostream>
- #include <cstring>
- #include <vector>
- #include <cmath>
- using namespace std;
- void sort(vector<string>** main,vector<string>* helper, int size,int deep){
- }
- void countSort(vector<string>* data, int n,vector<string>& result,int deep) {
- int maxLength = 0;
- for( int i = 0; i < n; i++ ) {
- int buf = (*data)[i].length();
- if (buf > maxLength){
- maxLength = buf;
- }
- }
- vector<string>* valuesDataFirst[255];
- for (int i=0; i<255;i++){
- valuesDataFirst[i] = new vector<string>;
- }
- //string** valuesDataHelper = new string[256];
- for (std::vector<string>::iterator it = (*data).begin() ; it != (*data).end(); ++it){
- if ((*it)[deep] != '\0'){
- (*(valuesDataFirst[(*it)[deep]])).push_back(*it);
- } else {
- result.push_back(*it);
- }
- }
- // delete data;
- deep += 1;
- for (int i=0;i<255;i++){
- if(!(*(valuesDataFirst[i])).empty()){
- countSort(valuesDataFirst[i],valuesDataFirst[i]->size(),result,deep);
- }
- }
- // else {
- // if (deep%2 == 1){
- // for (int i = 1; i<255;i++){
- // for (std::vector<string>::iterator it = valuesDataFirst[i].begin() ; it != valuesDataFirst[i].end(); ++it){
- // if ((*it)[deep] != '\0'){
- // valuesDataSecond[(*it)[deep]].push_back(*it);
- // } else {
- // cout << *it << endl;
- // data[counter++]=*it;
- // }
- // }
- // valuesDataFirst[i].clear();
- // }
- //
- // } else {
- // for (int i =1; i<255;i++){
- // for (std::vector<string>::iterator it = valuesDataSecond[i].begin() ; it != valuesDataSecond[i].end(); ++it){
- // if ((*it)[deep] != '\0'){
- // valuesDataFirst[(*it)[deep]].push_back(*it);
- // } else {
- //// cout << *it << endl;
- // data[counter++]=*it;
- // }
- // }
- // valuesDataSecond[i].clear();
- // }
- // }
- // }
- // flag = false;
- // deep++;
- // }
- }
- int main(){
- vector<string> data;
- vector <string> result;
- string buf = "";
- do {
- getline(cin, buf);
- if (buf.size() > 0) {
- // Добавление элемента в конец вектора
- data.push_back(buf);
- }
- } while (buf != "");
- countSort(&data, data.size(),result,0);
- for( int unsigned i = 0; i < data.size(); i++ ) {
- std::cout << result[i] << endl;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement