الگوریتم گِرُوِر (به انگلیسی: Grover's algorithm) یک الگوریتم کوانتومی برای جستجو در یک پایگاه داده نامرتب دارای N عضو، در زمانِ (O(N۱/۲ و در فضای ذخیرهسازی (O(log N است. لُو گرور این الگوریتم را در سال ۱۹۹۶ مطرح کرد.
بر روی یک رایانه کلاسیک، جستجو در یک پایگاه داده نامرتب نمیتواند در زمان کمتر از زمان خطی یا (O(n، یعنی با بررسی تک تک ورودیها انجام گیرد. الگوریتم گرُوِر بیان میکند که روی یک رایانه کوانتومی این عمل با پیچیدگی زمانی (O(N۱/۲ قابل انجام است و بهطور حدی، سریعترین الگوریتم قابل پیادهسازی برای جستجوی پایگاه دادهٔ نامرتب روی یک رایانه کوانتومی است.[۱] با وجود اینکه که الگوریتمهای کوانتومی معمولاً افزایش سرعتی نمایی نسبت به الگوریتمهای کلاسیک دارند ٬این الگوریتم افزایش سرعتی از توان ۰٫۵ در پی دارد که البته برای Nهای بزرگ بسیار قابل توجه است.
مشکلاتی در پیاده سازی الگوریتم گرور وجود دارد:
1- مشکل اول اینکه اگر قرار است در این الگوریتم از یک اوراکل استفاده کنیم، اول باید آن را بسازیم و اگر مواظب نباشیم تعداد قدمهای لازم برای ساختن اوراکل بیشتر از تعداد قدمهایی می شود که الگوریتم برای ما صرفه جویی می کند و در نهایت باعث می شود که الگوریتم از معادل کلاسیک آن کندتر شود نه سریعتر.
2- مشکل دوم این که این تسریع محاسبات با این فرض انجام می شود که هیچ ترتیبی در دیتا وجود ندارد. اگر ساختاری در دیتا وجود داشته باشد می توان الگوریتم های کلاسیکی را یافت که از این ساختار استفاده می کنند و پاسخ را با روشی بهتر از حدس زدن پیدا می کنند.
این دو مورد نشان می دهد که الگوریتم گرور در شرایط خاصی می تواند از الگوریتم های کلاسیک بهتر عمل کند. جالب است بدانید که ثابت شده که الگوریتم گرور بهینه است یعنی هیچ الگوریتم کوانتومی نمی تواند بیش از الگوریتم گرور جستجو در یک پایگاه داده نامرتب را بهبود دهد.[۱]
از نکته های بالا می توان نتیجه گرفت که مهمترین کاربردهای الگوریتم گرور نه برای خود الگوریتم بلکه برای نسخه های تغییریافته آن خواهد بود. به هرصورت الگوریتم شور و الگوریتم گرور تا زمان نگارش این مطلب مهمترین الگوریتم های کوانتومی به شمار می روند و الگوریتم های زیادی بر پایه این دو طراحی شده اند.[۲][۳]