(defun bubble-sort (vector) (loop for swapped = nil do (loop for i from 0 below (1- (length vector)) when (> (aref vector i) (aref vector (1+ i))) do (rotatef (aref vector i) (aref vector (1+ i))) (setf swapped t)) unless swapped return vector))
(defun bubble-sort (vector) (loop for swapped = nil do (loop for i from 0 below (1- (length vector)) when (> (aref vector i) (aref vector (1+ i))) do (rotatef (aref vector i) (aref vector (1+ i))) (setf swapped t)) unless swapped return vector))
الگوریتم های مرتبسازی آن دسته از الگوریتم هایی هستند که برای مرتبسازی یک مجموعه از اعداد و یا حروف و یا اسامی(با توجه به اینکه هر حرف یک ارزش عددی دارد) استفاده میشود.در این مطلب الگوریتم مرتبسازی حبابی- که از سادهترین الگوریتم های مرتبسازی است- مورد بررسی قرار میگیرد.
الگوریتم مرتبسازی حبابی یک راه حل سر راست و واضح دارد.این الگوریتم یک مجموعه از اعداد را پیمایش میکند و هر بار عدد فعلی را با عدد بعدیاش مقایسه میکند و در صورتی که از آن بزرگتر باشد جای عدد فعلی با عدد بعدی عوض میشود.یا برعکس اگر بخواهیم مجموعه را به صورت نزولی مرتب کنیم. الگوریتم بارها و بارها مجموعه را مرتب میکند تا آنکه مجموعه مرتب شود.فهمیدن اینکه مجموعه مرتب شده است نیز به دو روش انجام میشود که بترتیب میتوانید بررسی کنید: