4.7 אלגוריתמים תרגול
תרגיל 1 - מיון מערך של מספרים שלמים¶
כתוב תוכנית שמגדירה מערך של 8 מספרים שלמים לא ממוינים, ממיינת אותו בעזרת qsort, ומדפיסה את המערך לפני ואחרי המיון.
דוגמה להרצה:
רמזים:
- כתוב פונקציית השוואה שמקבלת שני
const void *וממירה ל-int * - השתמש ב-
sizeof(arr) / sizeof(arr[0])כדי לחשב את מספר האיברים
תרגיל 2 - מיון בסדר יורד¶
כתוב תוכנית שממיינת מערך של מספרים שלמים בסדר יורד (מהגדול לקטן) בעזרת qsort.
דוגמה להרצה:
רמז:
- שנה את פונקציית ההשוואה כך שתחזיר תוצאה הפוכה
תרגיל 3 - מיון מערך של מחרוזות¶
כתוב תוכנית שמגדירה מערך של 5 מחרוזות (שמות), ממיינת אותן בסדר אלפביתי בעזרת qsort, ומדפיסה את המערך אחרי המיון.
דוגמה להרצה:
רמזים:
- המערך הוא מסוג
char *names[] - פונקציית ההשוואה מקבלת מצביעים ל-
char *(כלומרchar **) - השתמש ב-
strcmpמתוך<string.h>להשוואה
תרגיל 4 - חיפוש בינארי במערך ממוין¶
כתוב תוכנית שמגדירה מערך ממוין של 10 מספרים שלמים, מבקשת מהמשתמש להכניס מספר לחיפוש, ומחפשת אותו בעזרת bsearch.
- אם המספר נמצא - הדפס את הערך ואת האינדקס שלו במערך.
- אם לא נמצא - הדפס הודעה מתאימה.
דוגמה להרצה:
רמזים:
- כדי לחשב את האינדקס, חשב את ההפרש בין המצביע שחזר לבין תחילת המערך
- אל תשכח שהמערך חייב להיות ממוין כדי ש-
bsearchתעבוד
תרגיל 5 - מיון וחיפוש ביחד¶
כתוב תוכנית שמקבלת מהמשתמש 6 מספרים שלמים, ממיינת אותם בעזרת qsort, ואז מבקשת מספר לחיפוש ומחפשת אותו עם bsearch.
דוגמה להרצה:
רמזים:
- השתמש ב-
scanfלקריאת המספרים - מיין קודם ורק אחר כך חפש