البرمجة

تنفيذ فرز الإدخال في بايثون على ملف نصي

في محاولة لفهم المشكلة التي تواجهك في تطبيق وظيفة insertionSort على ملف في Python، يبدو أن الشيء الذي يحتاج إلى تحسين هو قراءة الأرقام من الملف وتمريرها إلى الوظيفة.

أولًا، يجب عليك فتح الملف باستخدام الوضع “r” للقراءة. ثم قم بقراءة المحتوى باستخدام read() أو readlines() للحصول على الأرقام من الملف. بمجرد أن تحصل على الأرقام، قم بتحويلها إلى قائمة من الأعداد.

إليك كيف يمكنك تحسين الجزء المتعلق بفتح الملف وقراءته:

python
def insertionSort(a): # كود insertionSort كما هو filename = "file1.txt" with open(filename, "r") as infile: content = infile.read().strip() # قراءة المحتوى وإزالة الفواصل الزائدة numbers = list(map(int, content.split())) # تحويل الأرقام إلى قائمة من الأعداد الصحيحة insertionSort(numbers) print(numbers)

بهذه الطريقة، يتم قراءة الأرقام من الملف وتخزينها في قائمة. ثم يمكنك تمرير هذه القائمة إلى وظيفة insertionSort للقيام بالفرز. تأكد من تحقيق التوازن الصحيح بين القوسين والمسافات في الكود.

المزيد من المعلومات

بالطبع، دعونا نستمر في توسيع الفهم حول الكود وكيفية تحسينه. يبدو أن الهدف الرئيسي هو فرز قائمة الأرقام باستخدام خوارزمية فرز الإدخال (Insertion Sort). سأواصل الشرح لضمان فهم شامل.

لفهم الكود الخاص بك بشكل أفضل، دعونا نلقي نظرة على الوظيفة insertionSort:

python
def insertionSort(a): for i in range(1, len(a)): value = a[i] j = i - 1 while j >= 0: if value < a[j]: a[j + 1] = a[j] a[j] = value j = j - 1 else: break
  1. يبدأ البرنامج بتحديد القيمة الحالية a[i] ويقوم بتخزينها في value.
  2. يقوم بتحديد j كـ i - 1 للقيام بالمقارنة مع العناصر في الجزء الأيسر من value.
  3. يبدأ في مقارنة value مع العناصر على اليسار، وإذا كانت value أصغر، يتم تبديلها مع العنصر الحالي.
  4. يتابع البرنامج في الدورة حتى ينتهي من مقارنة value مع كل العناصر على اليسار.

الآن، بعد أن فهمنا الوظيفة نفسها، دعونا نركز على السياق الكلي لتطبيقها على الأرقام المستخرجة من الملف:

python
filename = "file1.txt" with open(filename, "r") as infile: content = infile.read().strip() numbers = list(map(int, content.split())) insertionSort(numbers) print("قائمة الأرقام المرتبة:") print(numbers)

يتم قراءة المحتوى من الملف، ومن ثم يتم تحويل هذا المحتوى إلى قائمة من الأعداد الصحيحة. بعد ذلك، يتم استدعاء وظيفة insertionSort لفرز هذه القائمة. أخيرًا، يتم طباعة القائمة المرتبة.

بهذه الطريقة، يمكنك تصحيح القراءة من الملف وتطبيق خوارزمية فرز الإدخال على الأرقام المستخرجة.

مقالات ذات صلة

زر الذهاب إلى الأعلى
إغلاق

أنت تستخدم إضافة Adblock

يرجى تعطيل مانع الإعلانات حيث أن موقعنا غير مزعج ولا بأس من عرض الأعلانات لك فهي تعتبر كمصدر دخل لنا و دعم مقدم منك لنا لنستمر في تقديم المحتوى المناسب و المفيد لك فلا تبخل بدعمنا عزيزي الزائر