Hacker News

Fast Sorting, Alɔdze Manɔmee le Aɖaŋu nu

\u003ch2\u003eDzidzedze Kabakaba, Alɔdze Manɔmee le Aɖaŋu nu\u003c/h2\u003e \u003cp\u003eNyati sia na gɔmesese veviwo kple nyatakaka tso eƒe tanya ŋu, si kpena ɖe sidzedze mama kple gɔmesese ŋu.\u003c/p\u003e \u003ch3\u003eNu vevi siwo wotsɔna yia teƒe bubuwo\u003c/h3\u003e \u003cp\u003eXlẽe...

4 min read Via 00f.net

Mewayz Team

Editorial Team

Hacker News
\u003ch2\u003eDzidzedze Kabakaba, Alɔdze Manɔmee le Aɖaŋu nu\u003c/h2\u003e \u003cp\u003eNyati sia na gɔmesese veviwo kple nyatakaka tso eƒe tanya ŋu, si kpena ɖe sidzedze mama kple gɔmesese ŋu.\u003c/p\u003e \u003ch3\u003eNu vevi siwo wotsɔna yia teƒe bubuwo\u003c/h3\u003e \u003cp\u003eNuxlẽlawo ateŋu akpɔ mɔ be yewoakpɔ viɖe:\u003c/p\u003e \u003cul\u003e \u003cli\u003eNya si ŋu woƒo nu tsoe gɔmesese deto\u003c/li\u003e \u003cli\u003eDɔwɔwɔ ŋutɔŋutɔ kple xexeame ŋutɔŋutɔ ƒe vevienyenye\u003c/li\u003e \u003cli\u003eEŋutinunyalawo ƒe nukpɔsusuwo kple numekuku\u003c/li\u003e \u003cli\u003eNyatakaka yeye siwo ku ɖe ŋgɔyiyi siwo le edzi yim fifia ŋu\u003c/li\u003e \u003c/ul\u003e \u003ch3\u003eAsixɔxɔ ƒe Nyagbɔgblɔ\u003c/h3\u003e \u003cp\u003eNyatakaka nyuiwo abe esia ene kpena ɖe sidzedze tutuɖo ŋu eye wòdoa nyametsotsowɔwɔ si ŋu wonya nu tsoe ɖe ŋgɔ le akpa vovovowo me.\u003c/p\u003e

Nyabiase Siwo Wobiana Enuenu

Nukae nye branchless sorting eye nukatae wòle vevie?

Alɔdzemanɔsitɔwo ƒe ɖoɖowɔwɔ ɖea nɔnɔme ƒe alɔdzewo (if/else nyagbɔgblɔwo) ɖa tso tsɔtsɔ sɔ kple wo nɔewo ƒe dɔwɔwɔwo me, si na be CPU ƒe pɔmpia te ŋu wɔa dɔ tohehe siwo me susu mele o manɔmee. Egbegbe dɔwɔnu siwo wɔa dɔ la ɖoa ŋu ɖe alɔdzedɔwɔƒea ƒe nyagblɔɖi ŋu, eye ne nyagblɔɖiwo do kpo nu la, pɔmpia tsia anyi. Alɔdzemanɔsitɔwo ƒe aɖaŋuwo zãa akɔntabubu ƒe ayemɔwo abe nɔnɔme ƒe ʋuʋu ene be nyatakakawo nayi edzi anɔ sisim nyuie, si wɔnɛ be nyatakakawo ƒe ɖoɖowɔwɔ ƒe ɣeyiɣiwo kabakaba ŋutɔ le nyatakakadzraɖoƒe gãwo alo esiwo womate ŋu agblɔ ɖi o dzi.

Aleke gbegbee alɔdze manɔmee ƒe ɖoɖowɔwɔ kabakaba ne wotsɔe sɔ kple mɔnu xoxowo?

Dɔwɔwɔ ƒe viɖewo nɔ te ɖe nyatakakawo ƒe nɔnɔmewo dzi, gake alɔdze manɔmee ƒe ɖoɖowɔwɔ ateŋu awɔ kabakaba wu 2–5x le random alo adversarial input me afisi alɔdze ƒe nyagblɔɖi do kpo nu enuenu. Le nyatakaka siwo woɖo ɖe ɖoɖo nu kloe gome la, viɖea dzi ɖena kpɔtɔna elabena nyagblɔɖilawo kpɔa nɔnɔmewo gbɔ nyuie. Dziɖuɖu ŋutɔŋutɔ va le dɔwɔwɔ siwo bua ɣeyiɣi didi ŋu abe ɣeyiɣi ŋutɔŋutɔ ƒe ɖoɖowo, fefe ƒe mɔ̃wo, kple nyatakakawo ŋuti dɔwɔwɔ le ɣeyiɣi si me wowɔa dɔ sesĩe le afisi microsecond ɖesiaɖe si le pɔmpi ƒe dɔwɔwɔ nyuie le xɔasi me.

Mate ŋu awɔ aɖaŋu siwo me alɔdze mele o ŋudɔ le nye ŋutɔ nye dɔwo mea?

Kakaɖedzitɔe. Alɔdzemanɔsitɔwo ƒe kpɔɖeŋuwo wɔa dɔ le C, C++, Rust, kple JavaScript ƒe dɔwɔwɔ ƒe ɣeyiɣi siwo wowɔ wònyo wu gɔ̃ hã me. Dze egɔme to nɔnɔme bɔbɔewo ɖɔliɖɔli kple akɔntabubu ƒe sɔsɔmewo—le kpɔɖeŋu me, zã (a > b) * a + (a <= b) * b ɖe if/else teƒe na max. Dɔwɔla siwo zãa Mewayz ƒe mɔ̃a ateŋu aku nu me le modules siwo ku ɖe dɔwɔwɔ ŋu le eƒe modules 207 siwo li me, siwo katã woateŋu akpɔ le $19/mo me, be woatsɔ awɔ algorithms siwo wowɔ nyuie wu la ɖekae ɖe ewɔwɔ ƒe dɔwɔwɔ ƒe ɖoɖowo me.

Ɣekaɣie wòle be maƒo asa na alɔdze manɔmee ƒe ɖoɖowɔwɔ?

Alɔdze manɔmee ƒe ɖoɖowɔwɔ menye tiatia nyuitɔ ɣesiaɣi o. Le ƒuƒoƒo suewo (le ~64 elements te), insertion sort with branches ɖua dzi zi geɖe le overhead si bɔbɔ ɖe anyi ta. Ne woɖo nyatakakawo ƒe akpa gãtɔ ɖe ɖoɖo nu alo woƒe nɔnɔme siwo woate ŋu agblɔ ɖi le wo ŋu la, alɔdzedɔwɔƒea ƒe nyagblɔɖilawo kpɔa nyateƒetoto si de blibo kloe, si wɔnɛ be alɔdzedɔwɔƒe manɔmee ƒe gazazã dzi megahiã o. Tsɔ wò nyatakaka ŋutɔŋutɔwo sɔ kple wo nɔewo ɣesiaɣi hafi nàtsɔ ɖokuiwò ana ɖe mɔnu si me alɔdze mele o ŋu—dɔwɔwɔ nyuie kaba kaba si me womewɔa nɔnɔmetatawo le o ate ŋu atsɔ nusiwo sesẽ akpe ɖe eŋu eye viɖe aɖeke manɔ eme si woate ŋu adzidze o.