Payamvdn/NorthPersian_fa_wiki huggingface dataset:
ت، قابل انتقال باشند. مستندات زبان زول. رابط زول عموماً به مجموعه ای از عناصر زیر تقسیم می شود: نام گذاری. نام زول برگرفته از فیلم شکارچیان روح محصول سال ۱۹۸۴ است که در آن روح خدای سومریان باستان به نام زوول کالبد شخصیت داستان به نام دَنا بَرِت را تسخیر می کند و عنوان می کند که «در اینجا دَنایی وجود ندارد، تنها زوول». از آنجایی که زول، همانند زبان MXML از اکس ام ال برای تعریف رابط ها و نه اسناد استفاده می کند، توسعه دهندگان را واداشت تا از تکیه کلام «در اینجا داده ای وجود ندارد، تنها زوول» استفاده کنند. از این رو پیوند نام کاری در ابتدای اسناد زول به شکل زیر می باشد: http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul واژه هایی همچون ارباب کلید و نگهبان دروازه نیز از خط سیر داستان فیلم شکارچیان روح گرفته شده است. دیگر ارجاعات به فیلم شکارچیان روح در محصولات شرکت موزیلا شامل برنامه رفع خطای جاوااسکریپت به نام ونکمن می باشد که برگرفته از یکی دیگر از شخصیت های این فیلم می باشد. کاربردهای زول. از زبان زول به صورت عمده برای ایجاد ابزارهای شرکت موزیلا و گسترش دهنده های آن ها استفاده می شود هرچند در ابزاره
ای تحت وبی که بر روی پروتکل HTTP تبادل داده دارند نیز مورد استفاده قرار می گیرد. مرورگر شرکت موزیلا برای سایت آمازون که نمونه ای مشخصی از چنین کاربردی می باشد، رابط قوی ای را برای جستجوی کتاب در سایت آمازون برا کاربران مهیا کرده است. از آنجایی که جیکو تنها پیاده سازی کامل را از زول انجام داده است، چنین ابزاری طبیعتاً برای کاربران مرورگرهای مبتنی بر چیزی غیر از مرورگر شرکت موزیلا، غیرقابل دسترس خواهد بود. دیگر ابزار مبتنی بر زول عبارتند از: مثال. این مثال سه دکمه را در یک جعبه نگهدارنده عمودی، نمایش می دهد: &lt;?xml version="1.0"?&gt; &lt;?xml-stylesheet href="chrome://global/skin/" type="text/css"?&gt; &lt;window id="vbox example" title="Example 3..." xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"&gt; &lt;vbox&gt; &lt;button id="yes" label="Yes"/&gt; &lt;button id="no" label="No"/&gt; &lt;button id="maybe" label="Maybe"/&gt; &lt;/vbox&gt; &lt;/window&gt;
گراف کاتز یا formula_1 یک گراف جهت دار از مرتبهٔ formula_2 و بُعد formula_3 است که دارای formula_4 راس است که این راس ها به وسیلهٔ تمام رشته های ممکن formula_5 با طول formula_3 که از کارکترهای formula_7 از الفبای formula_8 که شامل formula_9 نماد(حرف) مجزا است برچسب گذاری شده اند و در این برچسب گذاری هیچ دو حرف مجاوری برابر نیستند(formula_10). گراف کاتز formula_1 شامل formula_12 یال است formula_13 معمول است که هر یال از formula_1 را با formula_15 برچسب گذاری می کنند، که این کار یک نگاشت دوسویی بین یال های گراف کاتز formula_1 و راس های گراف کاتز formula_17 را نتیجه می دهد. کراف کاتز به طور بسیار نزدیکی به گراف دی براین مربوط است. محاسبات. گراف کاتز به عنوان یک ساختار شبکه برای وصل کردن پردازشگرها در محاسبات بسیار سریع و محاسبات مقاوم در برابر خطا، استفاده شده است. کاربرد: چنین شبکه هایی به عنوان "شبکه کاتز" شناخته می شوند.
پارک قصر بازی یکی از پارک های شهر رشت بوده که سومین پارک مکانیزهٔ شهر رشت و اولین پارک مسقف شمال ایران می باشد. قصر بازی در فروردین ۱۳۹۰ به طور رسمی افتتاح شد. تلفن های مجموعه: ۳۴۴۹۱۲۰۶ الی ۳۴۴۹۱۲۰۹ با پیش شماره ۰۱۳ شهر رشت و استان گیلان. تاریخچه. پروژه ساخت اولین و تنها پارک تفریحی سرپوشیده شمال کشور در سال ۱۳۸۷ با بررسی لازم و تهیه زمین مناسب در جاده رشت به انزلی آغاز شد. فاز اول مجموعه قصر بازی در زمینی به مساحت ۴۵۰۰۰ متر مربع و زیربنای پوشیده ۷۵۰۰ متر مربع و در دو طبقه ساخته شده است. مجموعه قصر بازی در فروردین ۱۳۹۰ به طور رسمی افتتاح گردید. طراحی این مجموعه توسط جناب آقای دکتر رئیس سمیعی صورت گرفته است. امکانات. مرکز بازی های شاد و هیجان انگیز در دو طبقه با مساحت ۵۰۰۰ متر مربع کافی شاپ مرکزی سالن بولینگ با ۱۲ خط استاندارد ورزشی سالن بیلیارد با ۵ میز استاندارد رستوران با تراس آمفی تئاتر با ظرفیت بیش از ۱۰۰ نفر برای جشنهای تولد و سایر مراسمهای خانوادگی، مهد کودک ها و دیگر مراسم فرهنگی کافی شاپ کلاه فرنگی کنار برکه پارکینگ برای ۳۰۰ خودرو
در جبر مجرد که شاخه ای از ریاضیات است، مونوئید (یا تَکواره) ساختاری جبری با یک عملگر دوتایی یک عضو خنثی است. تکواره ها از آنجا که به طور طبیعی نیم-گروه هایی با عضو خنثی هستند، مونوئیدها در شاخه های مختلفی از ریاضیات و علوم کامپیوتر پدیدار می گردند. تکواره های انتقالی و تکواره های نحوی در توصیف ماشین های حالت متناهی استفاده می شوند. برخی از نتیجه های مهم تر در مطالعهٔ تکواره ها، نظریه کراهن-رودز (Krohn-Rhods) و مسئلهٔ (star height) هستند. تاریخچهٔ تکواره ها را می توان در مقاله های مربوط به نیمگروها جستجو کرد. تعریف. تکواره، مجموعه ای چون S است، به همراه یک عملگر دودویی "." (که ضرب یا نقطه نامیده می شود) و دارای سه شرط زیر است: این سه شرط را می توانیم به فرم ریاضیاتی به صورت زیر بنویسیم: به طور خلاصه تر، یک تکواره یک نیم گروه است، به همراه یک عضو خنثی. یک تکواره اگر خاصیت معکوس پذیری برای هر عضو را داشته باشد، تشکیل یک گروه می دهد. معمولاً نماد عمل دودویی حذف می شود؛ مثلاً formula_12 و formula_13. این طریق نوشتن لزوماً این معنی را نمی دهد که متغیرها اعدادی هستند که در هم ضرب می شوند، بلکه هر عمل یا عنصری می توا
ند استفاده شود، البته اگر خوش تعریف باشند.
شکست بهمنی از گونه های شکست دیودی است. دیود از پیوند نیمه رسانا P-N تشکیل شده است و می تواند در بایاس مستقیم یا معکوس قرار گیرد. در بایاس معکوس، جریان اشباع معکوس یا جریان نشتی از دیود عبور خواهد کرد که بسیار کم و در حدود چند نانوآمپر است (بسته به جنس دیود که ژرمانیوم باشد یا سیلیسیم). در محل پیوند، میدان الکتریکی از طرف N به P است. در بایاس مستقیم ولتاژ منبع باید بر این میدان غلبه کند تا جریان قابل قبول از دیود بگذرد. اما در بایاس معکوس، شدت میدان افزایش یافته و ناحیه تهی دیود افزایش می یابد. در دیود ایده ال و در بایاس معکوس، با افزایش ولتاژ، جریان اشباع معکوس ثابتی می گذرد. اما در دیود واقعی با رسیدن ولتاژ معکوس به حدی خاص، دیود وارد فاز شکست می شود. شکست دیود دو حالت دارد: شکست بهمنی: در محل پیوند و اطراف آن، میدان الکتریکی وجود دارد که شدت آن درست در محل پیوند بیشینه است و بایاس معکوس این میدان را تقویت می کند. هرچه شدت این میدان بیشتر باشد، سرعت رانش حامل ها بزرگتر خواهد بود. به ازای یک مقدار بحرانی برای شدت میدان الکتریکی، حاملها به طور متوسط چنان شتاب می گیرند که انرژی کافی برای برخورد با شبکه بلور و ش
کستن پیوندهای بلوری را داشته باشند. این فرایند با آزاد شدن یک زوج الکترون-حفره همراه است. حاملی که به شبکهٔ بلور برخورد می کند، انرژی بالایی دارد که می تواند یک الکترون نوار ظرفیت را برانگیخته و به نوار رسانش ببرد. با حرکت الکترون از نوار ظرفیت، یک جای خالی الکترون (حفره) به وجود خواهد آمد. اکنون هر سه حامل (یک الکترون و دو حفره) آزاد هستند تا توسط میدان الکتریکی شتاب گیرند و در برخوردهای دیگر، حامل های دیگری را با همان روش آزاد کنند. این پدیده را، که مانند بهمن در کوهستان هاست، پدیدهٔ شکست بهمنی می نامند. هر حامل تنها، چه الکترون و چه حفره، دو حامل تولید می کند که هر کدام از آنها زوج های الکترون-حفره دیگری تولید می کنند.
در بیوشیمی، حالت طبیعی یک پروتئین یا اسید نوکلئیک عبارت است از شکل تا شده یا/و جمع شدهٔ آن، که یک حالت عمل کننده و دارای وظیفه را به آن می دهد. حالت طبیعی یک زیست مولکول می تواند تمامی ۴ سطح ساختار زیست مولکولی را به خود بگیرد، که ساختار دوم تا چهارم از فعل و انفعالات ضعیف در ستون فقرات پیوندهای کووالانسی شکل می گیرند. این حالت، با حالت تغییر شکل داده شده متضاد است، که در آن، این پیوندهای ضعیف از هم گسسته اند، که منجر به از بین رفتن شکل ساختارها به جز ساختار اولیهٔ زیست مولکولی می شود. پروتئین ها. درحالی که تمامی مولکول های پروتئین با زنجیره های ساده و بدون انشعاب از اسید آمینه ها شروع می شوند، وقتی کامل می شوند، شکل های سه بعدی خیلی خاصی را به خود می گیرند؛ آن شکل نهایی، که به عنوان ساختار سوم شناخته می شوند، شکل تا شده ای است که دارای کمترین میزان انرژی آزاد است. همین ساختار سوم پروتئین که به صورت تا شده است، پروتئین را قادر به اجرای وظایف زیستی اش می سازد. در حقیقت، تغییرات در شکل پروتئین ها، منشأ اولیهٔ چندین بیماری انحطاط اعصاب است، از جمله بیماری هایی که توسط پریون ها و آمیلویدها به وجود می آیند (مانند
جنون گاوی، بیماری کورو و بیماری کروتزفلد جاکوب). تعداد زیادی از آنزیم ها و پروتئین های غیرساختاری دیگری، بیشتر از یک حالت طبیعی دارند، و با تبدیل بین این حالت ها عمل می کنند یا دستخوش تنظیمات می شوند. با این حال، «حالت طبیعی» تقریباً به طور انحصاری برای یک حالت و معمولاً برای متمایز ساختن پروتئین های تا شده از پروتئین های تغییر شکل داده شده یا پروتئین های باز شده به کار می رود. در متون دیگر، شکل تا شدهٔ یک پروتئین بیشتر به ترکیب یا ساختار طبیعی آن اشاره دارد. پروتئین های تا شده و باز شده، اغلب به سادگی با بررسی حلالیت آن ها در آب، تشخیص داده می شوند، چرا که پروتئین های زیادی پس از تغییر شکل دادن حل ناپذیر می شوند. پروتئین ها در حالت طبیعی، ساختار دومی را تعریف خواهند کرد که می تواند به صورت طیفی، با دو رنگ تابی دورانی و با رزونانس مغناطیسی هسته ای (NMR) تشخیص داده می شوند.
در الگوریتم هایی که نوشته شده اند، ملاحظه می کنیم که الگوریتم ممکن است از بخش های تکرار شونده تشکیل شده باشد. محاسبه فاکتوریل اعداد، محاسبه قدر مطلق، بخش خواندن عناصر آرایه، بخش چاپ عناصر آرایه، و… از بخش هایی بودند که در الگوریتم ها به وفور مورد استفاده قرار گرفته اند. می توان برای هر بخش از مسئله یک الگوریتم نوشت و سپس آن ها را در الگوریتم کلی با هم ترکیب کرد. الگوریتمی که برای حل بخشی از مسئله نوشته می شود، زیراَلگوریتم نام دارد. امتیازات زیر الگوریتم ها. نوشتن زیر الگوریتم ها برای حل مسئله، امتیازاتی دارند که بعضی از ان ها را برمی شماریم: ۱. همکاری افراد را امکان پذیر می سازد، به طوری که یک مسئله را می توان به چند بخش تقسیم کرد و نوشتن الگوریتم هر بخش را به عهده افراد مختلفی گذاشت و سپس ان الگوریتم ها را با هم ترکیب کرد. ۲. از تکرار نوشتن دستور العمل ها جلوگیری می کند. ۳. عیب یابی و اشکال زدایی الگوریتم ها ساده تر می شود. ۴. زیرالگوریتم هایی را که در یک الگوریتم نوشته شدند، به همان صورت یا با تغییر اندک می توان آن ها را در الگوریتم های دیگر به کار برد. جنبه های زیر الگوریتم. هر زیر الگوریتم دارای دو جنبه
است: ۱. جنبه تعریف ۲. جنبه فراخوانی جنبه تعریف زیر الگوریتم، مجموعه دستورهایی است که عملکرد زیر الگوریتم را مشخص می کند. جنبه فراخوانی زیر الگوریتم، دستوری است که زیر الگوریتم را فراخوانی می کند. فراخوانی زیر الگوریتم با نام آن انجام می شود. هر زیر الگوریتم دارای نامی است که توسط ان فراخوانی می شود. نامگذاری برای زیر الگوریتم ها از قانون نام گذاری برای متغیرها تبعبت می کند. هر الگوریتم برای ارتباط با زیر الگوریتم یا تبادل اطلاعات با آن، می تواند تعدادی از متغیرهای خودش را به زیر الگوریتم بفرستد یا اطلاعاتی را از الگوریتم دریافت کند. این اطلاعات را که بین زیر الگوریتم و الگوریتم تبادل می شود، پارامتر می گویند؛ بنابراین پارامترها می توانند ورودی یا خروجی باشند. پارامترهای ورودی آنهایی هستند که از الگوریتم به زیر الگوریتم فرستاده می شوند و پارامترهای خروجی آنهایی هستند که از زیر الگوریتم به الگوریتم فرستاده می شوند. زیر الگوریتم ممکن است هم دارای پارامتر ورودی و هم خروجی باشد، ممکن است فقط پارامتر ورودی داشته باشد، ممکن است فقط پارامتر خروجی داشته باشد، یا اصلاً پارامتر نداشته باشد. اگر زیر الگوریتم دارای پارامت
ر باشد، اسامی پارامترها در جلوی نام زیر الگوریتم و در داخل پرانتز قرار می گیرند و با کاما(,) از هم جدا می شوند. به عنوان مثال، زیر الگوریتم زیرا در نظر بگیرید: MAX(X,Y,Z) نام این زیر الگوریتم MAX است و دارای سه پارامتر X,Y،Z می باشد. انواع زیرالگوریتم ها. الگوریتمی که زیر الگوریتمی را فراخوانیمی کند، انتظار دارد که زیر الگوریتم مقادیری را به الگوریتم فراخوان برگرداند. زیر الگوریتم ها را می توان به دو دسته تقسیم کرد: ۱. زیر الگوریتم های تابع(FUNCTION) ۲. زیر الگوریتم های زیر روال(SUBROUTINE) زیر الگوریتم های تابع، فقط می تواند یک مقدار را به الگوریتم فراخوان برگردانند. این مقدار، در نامشان قرار می گیرد؛ لذا در بدنهٔ الگوریتم، نام تابع، حداقل یکبار باید مقدار گیرد. زیر الگوریتم های زیر روالمی توانند هیچ مقداری را برنگردانند، یک مقدار یا چند مقدار را برگردانند؛ ولی باید دقت داشت که زیر الگوریتم هایی که یک مقدار را برمی گردانند، بهتر است به صورت تابع نوشته شوند. خصوصیات زیرالگوریتم های تابع. ۱. تمام دستورها الگوریتم را می توان در آن نوشت. ۲. فقط یک مقدار را به الگوریتم اصلی منتقل می کند. ۳. تغییرات بروی پارامترها
را به الگوریتم اصلی منتقل نمی کند. ۴. نام زیر الگوریتم، مقدار را به الگوریتم فراخوان منتقل می کند. پس باید نام زیر الگوریتم حتماً در سمت چپ قرار گیرد. خصوصیات زیر الگوریتم های زیر روال. ۱. تمام دستورها الگوریتم را می توان در آن نوشت. ۲. صفر یا بیش از یک خروجی را به الگوریتم اصلی منتقل می کند. ۳. تغییرات بر روی پارامترها به الگوریتم اصلی منتقل خواهد شد. ۴. به نام زیر الگوریتم رویه هیچ وقت مقداری نسبت داده نمی شود. همان طور که مشاهده کردید می توان یک زیر الگوریتم تابع را به فرم زیر الگوریتم رویه نوشت ولی هیچ وقت نمی توان وقتی بیش از یک خروجی داریم از زیر الگوریتم تابع استفاده کنیم. نمادهای زیر الگوریتم در فلوچارت. برای فراخوانی زیر الگوریتم، و برگشت از زیر الگوریتم، از نمادهای زیر در فلوچارت استفاده می شود. ۱. از مستطیل برای فراخوانی زیر الگوریتم (داخل آن نام زیر الگوریتم (مثلاً: (MAX(X,Y,Z)) ۲. از بیضی برای برگشت به الگوریتم
مرتب سازی هرمی ، نوعی الگوریتم است که در آن از مقایسه برای چینش یک آرایه یا فهرست استفاده می شود. این الگوریتم بخشی از خانوادهٔ مرتب سازی انتخابی است. با وجود اینکه در اکثر رایانه ها از الگوریتم چینش سریع کندتر است ولی در بدترین حالت سرعت بالاتر(formula_1) را دارا می باشد. این الگوریتم در محل است، ولی حالت پایداری ندارد. در این مرتب سازی، ابتدا از کل آرایه داده شده یک درخت مکس هیپ (یا درخت مین هیپ) می سازد. سپس بزرگترین مقدار را برمی دارد و در انتهای آرایه مرتب شده قرار می دهد. بعد از حذف بزرگترین مقدار، دوباره از بقیه اعداد یک درخت مکس هیپ می سازد تا دومین عدد بزرگ یافت شود. بزرگ ترین مقدار در بین مقادیر باقی مانده را برمی دارد و آن را در مکان یکی قبل از انتهای آرایه قرار می دهد. این کار تا زمانی که هیچ مقداری در هرم باقی نماند و آرایه مرتب شده کامل شود، تکرار می شود. یکی از روش های مرتب سازی داده هااست، که براساس خصوصیات درخت heap پیاده سازی شده است. بر اساس تعریف درخت heap، در یک max-heap یا min-heap بزرگترین یا کوچکترین مقدار بین داده ها همواره در ریشه درخت قرار دارد. یافتن بزرگترین یا کوچکترین عنصر بین ع
ناصر، هزینه ثابت (Ө(۱ دارد. با حذف این عنصر از درخت، بزرگترین یا کوچکترین عنصر بعدی مجدداً در ریشه قرار می گیرد. به این ترتیب با حذف متوالی عناصر درخت heap و درج آن ها در محل جدید، یک آرایه مرتب شده نزولی ویا صعودی به دست خواهد آمد. به عنوان مثال، min-heap زیر راتوضیح می دهیم: مراحل مرتب سازی هرمی به ترتیب زیر خواهد بود: Step 0) min-heap: 1, 4, 5, 8, 6, 9 -list: Step 1) min-heap: 4, 6, 5, 8, 9 -list:1 Step 2) min-heap: 5, 6, 9, 8 -list:1 ,4 Step 3) min-heap: 6, 8, 9 -list:1, 4,5 Step 4) min-heap: 8, 9 -list:1, 4, 5, 6 Step 5) min-heap: 9 - list:1, 4, 5, 6,8 Step 6) min-heap: -list: 1, 4, 5, 6, 8, 9 که در آخر، آرایه list شامل اطلاعات مرتب شده صعودی است. بررسی پیچیدگی زمانی مرتب سازی هرمی. برای مرتب کردن عناصر با استفاده از درخت heap، نیاز به n عمل حذف گره ریشه از درخت دارد. عمل حذف گره ریشه در درخت heap خود از مرتبه (Θ(log n است. در نتیجه کل این عملیات از مرتبه (Θ(n log n خواهد بود. نکته قابل توجه دیگر، ساخت درخت heap از عناصر مورد نظر برای مرتب سازی است. در حالت عادی عناصر به صورت نامرتب و با چیدمان تصادفی در
اختیار هر الگوریتم مرتب سازی قرار می گیرند. در این حالت یک هزینه زمانی دیگر برای ساخت درخت heap از روی چنین فهرستی مورد نیاز است. بررسی فضای مصرفی مرتب سازی هرمی. در روش بحث شده برای مرتب کردن n عنصر، دو آرایه n عنصری نیاز است. یکی از این آرایه ها عناصر را به فرم درخت heap به عنوان ورودی الگوریتم، و دیگری عناصر مرتب شده را به عنوان خروجی الگوریتم شامل می شوند. در چنین حالتی این الگوریتم یک روش مرتب سازی درجا نیست. با اندکی تغییر در روش پیاده سازی الگوریتم می توان عملکرد دو آرایه را در یک آرایه ادغام کرده، و میزان حافظه مصرفی را کاهش داد. درخت min-heap مثال فوق را در نظر بگیرید. با حذف عدد یک به عنوان گره ریشه درخت و اعمال تغییرات لازم به نتیجه زیر می رسیم: خط عمودی پررنگ، انتهای اطلاعات درخت در آرایه را نشان می دهد. خانه شماره ۶ حاوی اطلاعات بلا استفاده است. پس می توانیم عنصر حذف شده را در آن قرار دهیم: توجه = در حال حاضر درخت از پنج عنصر تشکیل شده است و عنصر ششم آرایه از عناصر درخت نیست. به همین ترتیب با حذف مجدد گره ریشه با مقدار ۴ آرایه زیر حاصل می شود: و با درج عنصر حذف شده در محل بلا استفاده: به همین تر
تیب با تکرار الگوریتم نتیجه نهایی حاصل می شود: باید توجه داشت که بر خلاف نتیجه نهایی روش قبل، در این حالت عناصر به صورت نزولی به دست آمده اند. یعنی در این روش از درخت min-heap برای مرتب سازی نزولی و از درخت max-heap برای مرتب سازی صعودی استفاده می شود. ساختن یک درخت Max-Heap. می توانیم برای تبدیل آرایه[A[1..n به یک max-Heap که [n=length[A از روال MAX-HEAPIFY به روش پایین به بالا استفاده کنیم. از آنجایی که عناصر زیر آرایه [A[(n/2)+1)...n همگی برگ های درخت هستند و بنابراین هر کدام یک Heap یک عنصری برای شروع است، روالBUILD-MAX-HEAP در راستای گره های باقی مانده درخت حرکت کرده و برای هر یک MAX-HEAPIFY را اجرا می کند. BUILD-MAX-HEAP(A) 1 heap-size=length[A] 2 for i=length[A]/2 downto 1 3 do MAX-HEAPIFY(A,i) روال MAX-HEAPIFY. MAX-HEAPIFY یک زیرروال مهم برای دستکاری max-Heapها است. ورودی آن آرایهA و اندیس i در آرایه است. زمانی که MAX-HEAPIFY فراخوانی می شود، فرض می شود که درخت های دودویی مشتق شده از فرزندان چپ و راستش،max-Heap هستند، ولی عنصر[A[iممکن است کوچکتر از فرزندانش باشد، بنابراین ویژگی max-Heap مورد تخطی قرار
می گیرد. وظیفه MAX-HEAPIFY این است که مقدار موجود در [A[i را در max-Heap به پایین حرکت دهد تا زیر درخت مشتق شده ازi، یک max-Heapشود. MAX-HEAPIFY(A,i) 1 l=LEFT(i) 2 r=RIGTH(i) 3 if(l≤heap-size[A] &amp;&amp;A[l[&gt;A[i] 4 then largest=l 5 else largest=i 6 if(r≤heap-size[A] &amp;&amp; A[r]&gt;A[largest] 7 then largest=r 8 if (largest≠i) 9 then swap(A[i],A[largest]) 10 MAX-HEAPIFY(A,largest) شبه کد مرتب سازی هرمی. دو نوع Heap دودویی وجود دارد:max-Heapها وmin-Heapها. در هر دو نوع، مقادیر درون گره ها ویژگی Heap را ارضاء می کنند که ویژگی های هرکدام به نوع Heap بستگی دارند. ویژگیmax-Heap این است که برای هر گره i به جزء ریشه: A[PARENT(i)]&gt;A[i] به طوری که: PARENT(i) return i/2 به عبارت دیگر مقدار یک گره حداکثر برابر مقدار پدرش است؛ بنابراین بزرگترین عضو max-Heap در ریشه ذخیره می شود. ویژگی min-Heap به صورت بر عکس شکل می گیرد. کوچکترین عضو در ریشه قرار می گیرد. در این الگوریتم مرتب سازی ازmax-Heap استفاده کردیم. HEAPSORT(A) 1 BIULD-MAX-HEAP(A) 2 for(i=length [A] downto 2) 3 do swap(A[1],A[i]) 4 Heap-size[A]=Heap-siz
e[A]-1 5 MAX-HEAPIFY(A,1) زمان اجرا. روال HEAPSORT زمان (O(n lgn را صرف می کند چون فراخوانی BUILD-HEAPزمان (O(n و هر یک از n-1 فراخوانی MAX-HEAPIFY زمان (O(lgn را صرف می کند. بررسی فضای مصرفی مرتب سازی هرمی. در روش بحث شده برای مرتب کردن n عنصر، دو آرایه n عنصری نیاز است. یکی از این آرایه ها عناصر را به فرم درخت heap به عنوان ورودی الگوریتم، و دیگری عناصر مرتب شده را به عنوان خروجی الگوریتم شامل می شوند. در چنین حالتی این الگوریتم یک روش مرتب سازی درجا نیست. با اندکی تغییر در روش پیاده سازی الگوریتم می توان عملکرد دو آرایه را در یک آرایه ادغام کرده، و میزان حافظه مصرفی را کاهش داد. درخت min-heap مثال فوق را در نظر بگیرید. با حذف عدد یک به عنوان گره ریشه درخت و اعمال تغییرات لازم به نتیجه زیر می رسیم: خط عمودی پررنگ، انتهای اطلاعات درخت در آرایه را نشان می دهد. خانه شماره ۶ حاوی اطلاعات سوخته و بلا استفاده است. پس می توانیم عنصر حذف شده را در آن قرار دهیم: توجه داشته باشید که در حال حاضر درخت از پنج عنصر تشکیل شده است و عنصر ششم آرایه از عناصر درخت نیست. به همین ترتیب با حذف مجدد گره ریشه با مقدار ۴ آرایه زیر
حاصل می شود: و با درج عنصر حذف شده در محل بلا استفاده: به همین ترتیب با تکرار الگوریتم نتیجه نهایی حاصل می شود: روش مرتب سازی انتخابی (Selection Sort) یکی از روش های اولیه مرتب سازی بر اساس مقایسه عناصر است. این الگوریتم طی چند مرحله عناصر فهرست را به صورت صعودی یا نزولی مرتب می کند. به این ترتیب که در هر مرحله با بررسی عناصر نامرتب، بزرگترین (یا کوچکترین) عنصر را پیدا کرده، و به انتهای فهرست منتقل می کند. فهرست اعداد زیر را در نظر بگیرید، که باید به صورت صعودی (کوچک به بزرگ) مرتب شود: ۲ ۸ ۴ ۱ ۷ در مرحله اول، کل فهرست از ابتدا تا انتها بررسی شده، و بزرگترین عنصر با عنصر انتهای فهرست نامرتب جابجا می شود: ۱) ۲ ۸ ۴ ۱ ۷ -&gt; ۲ ۷ ۴ ۱ ۸ در مرحله دوم، پیمایش از ابتدای فهرست تا عنصر چهارم صورت گرفته، و بزرگترین عنصر با عنصر انتهای آن جابجا می شود: ۲) ۲ ۷ ۴ ۱ ۸ -&gt; ۲ ۱ ۴ ۷ ۸ علت این که چرا عنصر پنجم بررسی نمی شود کاملاً مشخص است. این عنصر در مرحله قبل به عنوان بزرگترین عنصر به انتهای فهرست منتقل شده است، و به طور حتم نیاز به جابجایی ندارد. در مرحله سوم، عناصر اول تا سوم بررسی شده و بزرگترین عنصر به انتهای آن منتقل
می شود: ۳) ۲ ۱ ۴ ۷ ۸ -&gt; ۲ ۱ ۴ ۷ ۸ و در مرحله آخر دو عنصر باقی مانده مقایسه می شوند: ۴) ۲ ۱ ۴ ۷ ۸ -&gt; ۱ ۲ ۴ ۷ ۸ و به این ترتیب فهرست مرتب می شود.
نوروصوت شناسی یا آکوستو-اپتیک (Acousto-optics) شاخه ای از فیزیک است که به بررسی برهم کنش امواج نوری و امواج صوتی و به خصوص پراش لیزر به وسیلهٔ امواج صوتی می پردازد. اپتیک تاریخچه ای بسیار طولانی دارد: از زمان یونانیان باستان تا عصر حاضر درست مانند اپتیک، آکوستیک نیز تاریخچه ای طولانی دارد که به زمان یونانیان باستان بازمی گردد. در مقابل آکوستواپتیک علمی بسیار نوین با تاریخچه ای کوتاه است. این زمینه از علم با پیش بینی بریلوئن در مورد پراش نور به وسیلهٔ امواج صوتی منتشر شده در ماده در سال ۱۹۲۲ میالادی آغاز شد. این پیش بینی ده سال بعد توسط دبای و سیرز و همچنین لوکاس و بیکارد آزمایش و تأیید شد. مورد خاص پراش مرتبهٔ اول تحت یک زاویهٔ فرود خاص (که بریلوئن هم پیش بینی آن را کرده بود) برای اولین بار توسط ریتوف دیده شد. رامان و نث در سال ۱۹۳۷ یک مدل عمومی تر را طراحی کردند که پراش های مرتبهٔ بالاتر را آشکار کند. این مدل بعدها در سال ۱۹۵۶ توسط فریزو توسعه پیدا کرد. مدل وی قابل تنظیم بر مرتبهٔ پراشی مشخص بود. اساس نوروصوت شناسی، تغییر ضریب شکست به خاطر حضور موج صوتی در ماده است. موج صوتی یک شبکهٔ ضریب شکست در ماده به وجو
د می آورد و این شبکه توسط موج نوری «دیده» می شود. تغییر ضریب شکست که به خاطر نوسان فشار ایجاد شده، به وسیله آثار شکست نور، بازتاب نور، تداخل و پراش قابل شناسایی است. آکوستو اپتیک. آکوستو اپتیک شاخه ای از فیزیک است که به بررسی برهم کنش امواج نوری و امواج صوتی و به خصوص پراش لیزر به وسیلهٔ امواج صوتی می پردازد. "مقدمه" اپتیک تاریخچه ای بسیار طولانی دارد: از زمان یونانیان باستان تا عصر حاضر درست مانند اپتیک، آکوستیک نیز تاریخچه ای طولانی دارد که به زمان یونانیان باستان بازمی گردد. در مقابل آکوستواپتیک علمی بسیار نوین با تاریخچه ای کوتاه است. این زمینه از علم با پیش بینیبریلوئندر مورد پراش نور به وسیلهٔ امواج صوتی منتشر شده در ماده در سال ۱۹۲۲ میالادی آغاز شد. این پیش بینی ده سال بعد توسط دبای و سیرز و همچنین لوکاس و بیکارد آزمایش و تأیید شد. مورد خاص پراش مرتبهٔ اول تحت یک زاویهٔ فرود خاص (که بریلوئن هم پیش بینی آن را کرده بود) برای اولین بار توسط ریتوف دیده شد. رامان و نث در سال ۱۹۳۷ یک مدل عمومی تر را طراحی کردند که پراش های مرتبهٔ بالاتر را آشکار کند. این مدل بعدها در سال ۱۹۵۶ توسط فریزو توسعه پیدا کرد. مدل و
ی قابل تنظیم بر مرتبهٔ پراشی مشخص بود. اساس آکوستو اپتیک، تغییر ضریب شکست به خاطر حضور موج صوتی در ماده است. موج صوتی یک شبکهٔ ضریب شکست در ماده به وجود می آورد و این شبکه توسط موج نوری «دیده» می شود. تغییر ضریب شکست که به خاطر نوسان فشار ایجاد شده، به وسیله آثار شکست نور، بازتاب نور، تداخل و پراش قابل شناسایی است. "تئوری" اثر آکوستو اپتیکی در واقع حالت خاصی از فوتوالاستیسیته (تغییر در ضریب گذر دهی الکتریکی به خاطر کشش مکانیکی) است. فوتوالاستیسیته یعنی تغییر مؤلفه های ضریب شکست formula_1 به خاطر کشش مکانیکیformula_2 که formula_4 تانسور فوتو الاستیک است formula_5 در مورد خاص آکوستواپتبک کشش مکانیکی به خاطر موج صوتی منتشرشده در محیط شفاف ایجاد می شود که همین موضوع ضریب شکست را تغییر می دهد. اگر موج صوتی موج تخت و با راستای انتشار z باشد داریم: و ضریب شکست رابطهٔ ۲ یک توری پراش می سازد که با سرعت صوت حرکت می کند. نوری که از این توری عبور کند یک الگوی پراش می سازد. رابطهٔ این الگو به شکل زیر است: که در آن m مرتبهٔ پراش و formula_9 طول موج صوت است. ابزارهای آکوستو اپتیکی. ابزارهای آکوستو اپتیکی شامل سه گروه زیر هس
تند: "۱- مدولاتور آکوستو اپتیکی" با تغییر پارامترهای موج صوتی مانند دامنه، فاز، فرکانس، و قطبش می توان خواص موج نوری را مدوله کرد. برهمکنش نور و صوت همچنین امکان مدوله کردن زمانی و فضایی موج نوری را فراهم می آورد. یک راه ساده برای مدوله کردن پرتوی اپتیکی عبور نور از محیطی است که در آن موج صوتی به طور متناوب روشن و خاموش شود. وقتی صوت خاموش باشد زاویهٔ پراش صفر و نور بی تغییر است. با روشن شدن صوت پراش رخ می دهد و شدت صوت در زوایای پراش افزایش ی یابد. با ثابت نگاه داشتن فرکانس صوتی و تغییر در توان مولد صوت می توان این ابزار را به یک مدولاتور آکوستواپتیکی تبدیل نمود. در طراحی مدولاتور باید به نحوی عمل کرد که ماکزیمم شدت نور در پرتوی پراشیده رخ بدهد. مدت زمانی که طول می کشد صوت از ماده عبور کند نیز محدودیتی بر سرعت سوییچ کردن تحمیل می کند. برای همین پرتوی نوری را تا حد ممکن باریک می کنند. باریک ترین پرتوی نوری ممکن را حد پهنای باند می نامند. "۲- فیلترهای آکوستو اپتیکی" رابطهٔ ۴ ارتباطی را میان طول موج صوتی و طول موج نوری نشان می دهد. در واقع پرتوی نوری تابیده شده، اگر دارای تعداد زیادی طول موج باشد فقط در طول موج
های خاصی پراکنده می شود. مابقی طول موج ها فیلتر خواهند شد. "۳- منحرف کننده های آکوستو اپتیکی" با ایجاد یک تغییر در فرکانس صوت می توان تغییر زاویه ای در پرتوی نوری ایجاد کرد. این تغییر از رابطهٔ زیر پیروی می کند. از این خاصیت در ساخت منحرف کننده ها استفاده می کنند.