為什麼這裡python列表的sort比c STL的sort排序還要快?

時間 2021-06-09 23:32:58

1樓:tearshark

因為你用的debug版在跑。

I7 6600U 2.6GHz的CPU,資料從大到小排列,排序成從小到大:

1000000,用時16ms。

10000000,用時168ms。

資料採用rand()函式隨機,排序成從小到大:

1000000,用時74ms。

10000000,用時648ms。

const int N = 1000000;

int * p = new int[N];

for (int i = N; i > 0; --i)

p[i-1] = rand(); //i

auto start_tp = std::chrono::high_resolution_clock::now();

std::sort(p, p + N);

auto dt = std::chrono::high_resolution_clock::now() - start_tp;

printf("%lldms\n", std::chrono::duration_cast(dt).count());

為什麼python中將列表1賦值給列表2後將列表2順序反轉也會影響列表1?

酒罈壇兒 python中的變數本質都是指標變數,儲存的是資料在記憶體中的位址。所以你通過其中乙個變數對資料本身進行任何操作都會直接影響另乙個變數。 Gavin 其實問題的關鍵在於 第一,賦值其實只是複製了物件的引用,並沒有建立新的物件第二,操作物件是乙個可變物件對於ls1 1,2,3,4,5 語句,...

這裡Python的str和int為什麼不能連在一起

est str str 的寫法其實也是錯誤的。正確的寫法是 s s s1,s2 從這個角度來說,s 1 是成立的。 zhouzhou 不同型別的是無法想加的。你可以這樣寫 print 你好,format name 語法應該沒錯。by ide重度依賴患者 DavyCloud 不是不能,而是 Pytho...

python 怎麼把大列表裡的小列表處理掉?

其實把 1,1,1,1,1,1,1,1 2,2,2,2,2,2,2,2 3,3,3,3,3,3,3,3 4,4,4,4,4,4,4,4 這個大list變成 1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4 這樣的小list...