قم بمعالجة إما العنصر الأصغر أو الأكبر ، اعتمادًا على أنه أقرب (في القيمة ، وليس الفهرس) إلى عنصر البداية ، ثم ببساطة معالجة العناصر المتبقية إلى اليمين أو إلى اليسار (اعتمادًا على ما إذا كنا نعالج أصغر أو أكبر عنصر ).
لذلك ، معطى 4,9,10,11,19
بدءا من 10
:
المسافة من 10
إلى أصغر عنصر 4
هو 6 ، المسافة من 10
إلى أكبر عنصر 19
هو 9 ، لذا انتقل إلى 4
.
ثم معالجة العناصر المتبقية في ترتيب فرز - 9, 11, 19
.
هذا يعطينا 10 -> 4 -> 9 -> 11 -> 19
, التي تكاليف 6 + 5 + 2 + 8 = 21
.
يمكن القيام بذلك في O(n)
.
ملحوظة:
تجدر الإشارة إلى أننا طالما نتحرك أولاً نحو أقرب جانب ، ثم نحو الجانب الآخر (بغض النظر عن العناصر التي نعالجها عندما لا نغير الاتجاه أكثر من مرة) ، سنحصل على نتيجة مثالية .
لهذا 10 -> 9 -> 4 -> 11 -> 19
يعطي أيضا 21
.