اولین بار است که به این وب‌سایت می‌آیید. راهنما را مطالعه کنید!
x
موسسه خیریه محک

شهر ریاضی بازی-ریاضی

الگوریتم شیفت حلقوی (بازگشتی؟)

0 امتیاز
535 نمایش

من برای شیفت حلقوی یه آرایه از الگوریتم زیر استفاده کردم. الگوریتم بهتر یا بهبودی برای این سراغ دارین؟

#include <iostream>

int main()
{
  const unsigned int SIZE = 10;
  const unsigned int SHIFT = 3; 
  int x[SIZE];
  int y[SIZE];
  for(unsigned int i=0; i<SIZE-SHIFT; i++)
    y[i] = x[i+SHIFT];
  for(unsigned int i=SIZE-SHIFT; i<SIZE; i++)
    y[i] = x[i+SHIFT-SIZE];
  return 0;
}
هیچ پژوهش انسانی نمی‌تواند ادعای علمی بودن داشته باشد، مگر این‌که از برهان ریاضی برخوردار باشد (لئوناردو داوینچی)
پرسیده شده جمعه ۹ فروردین ۱۳۹۲ در C++ توسط prodo  

1 پاسخ

0 امتیاز

اول این‌که در سرفایل algorithm تابعی برای این کار هست

std::rotate(&x[0], &x[3], &x[10]);

و اگه درجا شیفت دادن (یعنی روی آرایه‌ی اولیه) مورد نظر مساله نیست فکر کنم این روش بهینه باشه.

هیچ پژوهش انسانی نمی‌تواند ادعای علمی بودن داشته باشد، مگر این‌که از برهان ریاضی برخوردار باشد (لئوناردو داوینچی)
پاسخ داده شده سه شنبه ۱۴ خرداد ۱۳۹۲ توسط prodo