天气与日历 切换到窄版

 找回密码
 立即注册
中国膜结构网
十大进口膜材评选 十大国产膜材评选 十大膜结构设计评选 十大膜结构公司评选
查看: 72|回复: 0

合并算法

[复制链接]

该用户从未签到

主题

0

回帖

2912

积分

管理员

积分
2912
发表于 2024-6-22 09:46:18 | 显示全部楼层 |阅读模式
// MergeTest.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <vector>
#include <list>
#include <string>
//#include <stdio>
#include <iosfwd>

#include <windows.h>

using namespace std;

bool IsEqual(const string& a,const string& b)
{
        int nlen = a.length();
        for (int i = 0; i < nlen; ++i)
        {
                int jjlen = b.length();
                for (int jj = 0; jj < jjlen; ++jj)
                {
                        if (a[i] != b[jj])
                        {
                                return false;
                        }
                }
        }
        return true;
}

int main()
{
        list<string> strList;
        for (int i = 0; i < 500; ++i)
        {
                strList.push_back("c");
                strList.push_back("a");
                strList.push_back("b");
                strList.push_back("a");
                strList.push_back("a");
                strList.push_back("b");
                strList.push_back("b");
                strList.push_back("c");
                strList.push_back("a");
                strList.push_back("d");
        }

        DWORD time_start, time_end;
        time_start = GetTickCount();

        auto curIt = strList.begin();
        for (; curIt != strList.end(); ++curIt)
        {
                while (true)
                {
                        bool added = false;
                        auto nextIt = curIt;
                        ++nextIt;
                        for (; nextIt != strList.end(); ++nextIt)
                        {
                                if (IsEqual(*curIt,*nextIt))
                                {
                                        (*curIt) += (*nextIt);
                                        strList.erase(nextIt);
                                        added = true;
                                        break;
                                }
                        }
                        if (added == false)break;
                }
        }

        time_end = GetTickCount();

        double runTime = (time_end - time_start) / 1000.0;

        return 0;
}

 

 

 

 

合并算法
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|中国膜结构网|中国膜结构协会|进口膜材|国产膜材|ETFE|PVDF|PTFE|设计|施工|安装|车棚|看台|污水池|中国膜结构网_中国空间膜结构协会

GMT+8, 2024-11-1 11:36 , Processed in 0.162247 second(s), 27 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表