c++ " />

扫描二维码下载沐宇APP

沐宇

微信扫码使用沐宇小程序

沐宇

绾㈤粦鏍戠殑鏌ヨ鏁堢巼锛欳++瀹炰緥鍒嗘瀽

扬州沐宇科技
2024-04-26 19:02:54
c++

绾㈤粦鏍戞槸涓€绉嶈嚜骞宠 鐨勪簩鍙夋悳绱㈡爲锛屽叾鏌ヨ鏁堢巼闈炲父楂橈紝鏃堕棿澶嶆潅搴︿负O(log n)锛屽叾涓璶涓烘爲涓妭鐐圭殑涓暟銆備笅闈㈤€氳繃涓€涓狢++瀹炰緥鏉ユ紨绀虹孩榛戞爲鐨勬煡璇㈡晥鐜囥€?/p>

#include <iostream>
#include <map>
#include <chrono>

int main() {
    std::map<int, int> rb_tree; // 鍒涘缓涓€涓孩榛戞爲

    // 鍚戠孩榛戞爲涓彃鍏?000000涓殢鏈烘暟
    for (int i = 0; i < 1000000; ++i) {
        rb_tree.insert(std::pair<int, int>(i, i));
    }

    // 鏌ヨ绾㈤粦鏍戜腑鐨勪竴涓厓绱?/span>
    int target = 500000;
    auto start = std::chrono::high_resolution_clock::now();
    auto it = rb_tree.find(target);
    auto end = std::chrono::high_resolution_clock::now();

    if (it != rb_tree.end()) {
        std::cout << "Found element " << it->first << " in red-black tree." << std::endl;
    } else {
        std::cout << "Element not found in red-black tree." << std::endl;
    }

    // 杈撳嚭鏌ヨ鑰楁椂
    auto duration = std::chrono::duration_cast<std::chrono::microseconds>(end - start);
    std::cout << "Query time: " << duration.count() << " microseconds" << std::endl;

    return 0;
}

鍦ㄤ笂闈㈢殑浠g爜涓紝鎴戜滑棣栧厛鍒涘缓浜嗕竴涓寘鍚?000000涓殢鏈烘暟鐨勭孩榛戞爲銆傜劧鍚庢垜浠湪绾㈤粦鏍戜腑鏌ヨ涓€涓壒瀹氱殑鍏冪礌锛堣繖閲屾槸500000锛夛紝骞惰緭鍑烘煡璇㈢粨鏋滃拰鑰楁椂銆?/p>

閫氳繃杩愯涓婇潰鐨勪唬鐮侊紝鍙互鐪嬪埌绾㈤粦鏍戝湪鏌ヨ鎿嶄綔涓殑楂樻晥鎬э紝鏌ヨ鑰楁椂閫氬父寰堢煭銆傝繖鏄洜涓虹孩榛戞爲鐨勮嚜骞宠 鎬ц川鍙互纭繚鏍戠殑楂樺害濮嬬粓淇濇寔鍦ㄤ竴涓緝灏忕殑鑼冨洿鍐咃紝浠庤€屼繚璇佷簡楂樻晥鐨勬煡璇㈡搷浣溿€傚洜姝わ紝绾㈤粦鏍戞槸涓€绉嶉潪甯搁珮鏁堢殑鏁版嵁缁撴瀯锛岄€傜敤浜庨渶瑕侀绻佹煡璇㈢殑鍦烘櫙銆?/p>

扫码添加客服微信