۱
subtitle
(۲۵ شهریور ۱۳۹۲ ۱۲:۱۱ ب.ظ)nsabery نوشته شده توسط: می شه بیتر توضیح بدین که چرا مرتبه این برنامه Log*n است؟
الگوریتم شما انقدر از n لگاریتم میگیره تا بالاخره به عددی کوچکتر یا مساوی ۲ برسه. بنابراین تعداد دفعات اجرای حلقهی while شما (و در نتیجه زمان اجرای برنامه) میشه تعداد دفعاتی که پشت سر هم باید از یک عدد لگاریتم گرفت تا نتیجه بشه عددی کوچکتر یا مساوی ۲/
طبق تعریف به این تعداد اصطلاحاً میگن لگاریتم مکرر یا همون لُگ استار (log∗(n)). بنابراین زمان اجرای شما همون لُگ استار n میشه :-)