Վերջերս ես հանդիպեցի դրական թվերի տեսակավորման իսկապես տարօրինակ ալգորիթմի։ Այն կոչվում է քնի տեսակավորում: Եվ զարմանալիորեն աշխատում է: Այսպիսով, ես որոշեցի սա իրականացնել c plus plus-ում և պատրաստել ձեռնարկ: Այս ձեռնարկում մենք կիրականացնենք այս ալգորիթմը c plus plus-ում: Դա անելիս մենք կսովորենք.

  1. Ինչպես բազմաթելեր կատարել c plus plus-ում
  2. Ինչպես ստեղծել պատահական թվեր c-ում գումարած գումարած
  3. Ինչպես կազմել կոդը Linux-ում
  4. std::vectors-ի օգտագործումը
  5. Օգտագործեք std::shared_ptr և std::make_shared()

Ալգորիթմը բավականին պարզ է և կարելի է նկարագրել ընդամենը մեկ տողով. Ա չտեսակավորված A ցանկի յուրաքանչյուր x տարրի համար գործարկեք ծրագիր, որը քնում է x տևողությամբ և դրանից հետո տպում է x: Ստացա՞ք: դա? Տարօրինակ չէ՞ Տեսնենք դրա կեղծ կոդը:

կեղծ_կոդ https://gist.github.com/582acc5c51653f81ad63c4df19085ab3

Չնայած կեղծ կոդը պարզ է թվում: Այնուամենայնիվ, բազմաշերտ հատվածը մի փոքր բարդացնում է այն: Այսպիսով, եկեք սուզվենք այս ալգորիթմի իրականացման մեջ c plus plus-ում:

sleep_sort.cpp

https://gist.github.com/bed930ad0ce90d74aa105e0b80040214

Կոդը կազմելով Linux-ում.

https://gist.github.com/c41fb0c8552aad6545ce7fd11970be98

Եվ ահա արդյունքը.

https://gist.github.com/18f6f2ac066b346f5ee222480e661636

Սկզբնապես հրապարակվել է gist.github.com-ում: