ومع ذلك، فإن العديد من الكتب لا تشرح ذلك بشكل واضح، كما أن المواد التعليمية المختلفة لها طرق تنفيذ مختلفة.
سأكتب أبسط فكرة للفرز السريع هنا للرجوع إليها.
آمل أنه بغض النظر عن اللغة التي تستخدمها، يمكنك بسهولة فهم أفكار الفرز السريع وطرق الكتابة من هذا الكود البسيط.
انسخ رمز الكود كما يلي:
وظيفة فرز سريع (قائمة، بداية، نهاية) {
إذا (البدء <النهاية) {
var Pivotpos = Partition(list, start, end); // ابحث عن قاعدة الفرز السريع
Quick_sort(list, start,ivoppos - 1); // فرز سريع لليسار
Quick_sort(list, Pivotpos + 1, end); // فرز سريع للصحيح
}
}
// اضبط التسلسل إلى منطقتين مقسومتين على الرقم الأساسي، جانب واحد لا يقل عن الرقم الأساسي، والجانب الآخر ليس أكبر من الرقم الأساسي
قسم الوظيفة (القائمة، البداية، النهاية) {
فار بيفوتبوس = بداية؛
var Pivot = list[start];
فار تمب؛
for(var i = start + 1; i <= end; i ++) {
إذا (قائمة [i] <المحور) {
tmp = list[i];
المحورية += 1;
list[i] = list[pivotpos];
list[pivotpos] = tmp;
}
}
tmp = list[start];
list[start] = list[pivotpos];
list[pivotpos] = tmp;
العودة المحورية.
}
قائمة فار = [8,2,4,65,2,4,7,1,9,0,2,34,12];
Quick_sort(list, 0, list.length);