Internationalized Domain Name - IDN הוא שם דומיין (שם מתחם) בשפה שונה מאנגלית. פיתוח הטכנולוגיה של ה-IDNs החל בשנת 1998 באוניברסיטה של סינגפור. האוניברסיטה של סינגפור הקימה את חברת i-DNS.net על מנת להוציא לפועל את השימוש בטכנולוגיה. תהליך קידום השימוש בטכנולוגיית ה-IDNs הוא תהליך הנמצא בעיצומו בכל העולם בשנים האחרונות. הקידוד שהוסכם כסטנדרט עבור IDNs על ידי ארגון ה-IETF הוא ה-Punycode. השימוש ב-IDNs תופס את מקומו כשירות נדרש עם העמקת אחוז החדירה של האינטרנט במדינות ששפתם המקומית שונה מאנגלית, והשפה נכתבת בהן היא באותיות שאינן לטיניות ביסודם. טכנולוגיית ה-IDNs הוטמעה בדפדפנים המובילים – הטכנולוגיה אומצה על ידי חברת מיקרוסופט בדפדפן Internet Explorer 7, על ידי Mozilla החל בדפדפן Firefox 2. הטכנולוגיה הוטמעה גם בדפדפנים אחרים כגון דפדפן Chrome של חברת Google, דפדפן Safari ואחרים.
שמות דומיין בכתב עברי, אפשריים כחלק מתקן IDN. הראשונות שהתאפשר לרשום שמות מתחם עבריים תחתיהן היו הסיומות com ו־net. בשנת 2005 נוספה הסיומת org.
החל משנת 2007 חברה פרטית החלה לשווק בישראל שמות דומיין בעברית תחת סיומות. קום .נט .ארג המוגבלים לגישה מספקי הגישה הגדולים בלבד (013 נטוויז'ן, בזק בינלאומי, ו־012 סמייל). מאחר שסיומות אלו אינן מוכרות על ידי שרתי ה־DNS בעולם, שימוש בהם לא מאפשר למחזיקים בהם להשתמש במרבית היכולות של שמות המתחם המוכרים - כשהבולט בהם הוא חוסר היכולת לשלוח ולקבל דואר אלקטרוני.
גלישה לשמות מתחם עבריים דורשת תמיכה בתקן IDN מצד הדפדפן (בין הדפדפנים התומכים נמנים Internet Explorer 7 ו־Firefox), ובמרבית הדפדפנים האחרים משנת 2007 ואילך.
קיים הבדל משמעותי בשימוש בין שמות דומיין בעברית עם סיומת באנגלית Hybrid IDN (לדוגמה - דומיין.com) לעומת שימוש בשמות דומיין עם סיומת בעברית Full IDN (לדוגמה - דומיין. קום). בשמות דומיין שנכתבים מימין לשמאל כמו בשפה העברית במיוחד, השימוש ב Hybrid IDN בעייתי ועלול לגרום לטעויות בהקלדה עקב היפוך השפה וכתוצאה מכך שינוי מיקום הנקודה בדומיין, ולבסוף להגיע לאתר הלא נכון. בעיה זו יכולה לגרום למקרי הונאה בשם Phishing.
ב־30 ביולי 2018, הכריזה רשמית חברת Verisign, המנהלת בין היתר את רישום כתובות ה- .com ו- .net בעולם (שמהווים כ־50% בסך שמות הדומיין בעולם) על פתיחת תהליך רישום לשמות דומיין בעברית עם סיומת. קום. פתיחת הסיומת. קום מתרחשת במסגרת התהליך להוספת סיומות דומיין גנריות חדשות (New gTLDs) לרשת האינטרנט אותו מנהל ארגון האינטרנט העולמי ICANN, האחראי על המדיניות בתחום שמות הדומיין באינטרנט. האישור המקורי לסיומת ניתן ל Verisign על ידי ICANN כבר ב-15 בינואר 2015.
חברות וארגונים יוכלו להפנות גולשים לאתריהם באמצעות כתובת דומיין בעברית ועל ידי כך למנוע צורך לזכור שם דומיין באנגלית או להפנות גולשים למנועי חיפוש, אשר אינם ניתנים לשליטה ובהם יכולים הגולשים להיחשף למתחרים. הכרזה זו הופכת את העברית להיות באופן רשמי ולראשונה חלק ממערכת האינטרנט (ה-DNS) הבינלאומית.
תהליך השקה של סיומת חדשה בעברית מאפשר לחברות וארגונים לשמור על שמות המותגים ועל זכויותיהם. תהליך הרישום המוקדם יערך בין החודשים אוגוסט עד אוקטובר 2018. בנובמבר 2018, תיפתח הסיומות החדשה בעברית. קום לרישום רגיל.
שמות מתחם מקוצרים.
שמות מתחם מקוצרים (ידוע גם ככתובות מקוצרות) הם תת-שמות מתחם, אשר לרוב מחולקים בחינם, בשונה משם מתחם רגיל.
כתובות מקוצרות אינן תחת שליטת איגוד האינטרנט הישראלי, אלא ניתנים לרישום באתרי אינטרנט הנמצאים בבעלות פרטית (שירות קיצור כתובות). לרוב מסופקים עם הכתובות המקוצרות שירותי סטטיסטיקות ומספר עזרים לבעל הכתובת.
ויכוחי בעלות על שם תחום.
לשמות תחום קליטים ומבוקשים במיוחד יש ערך רב. שם התחום business.com נרכש תמורת 7.5 מיליון דולר.
חשיבותו של שם התחום הביאה לתופעה של השתלטות על שם תחום לשם מכירתו בכסף רב. לעיתים נוצרו סכסוכים כאשר גורם זר השתלט על שם תחום שהוא סימן מסחר שאינו שלו.
בתביעה שהגישה חברת "סלקום" כנגד גורם שרשם אתר בשם cellcom.net.il, נפסק שאסור לאותו גורם להשתמש בשם תחום זה.
עוזי ניסן, ישראלי שהתגורר בארצות הברית, רשם את שם התחום Nissan.com, ובכך עורר את זעמה של חברת המכוניות היפנית "ניסאן", שתבעה להעביר שם תחום זה לבעלותה, וכן טענה שנגרמים לה נזקים כתוצאה מהשימוש שעושה עוזי ניסן באתר זה. הבעלות על שם המתחם נותרה בידי עוזי ניסן, שהרי זה שמו לא פחות משזה שמה של חברת המכוניות.
במחצית השנייה של שנות ה-90 משפט מסוקר עקב אחר מחלוקת סביב שם התחום sex.com, במהלכה הצליח עסקן להעביר במרמה את בעלות האתר לידיו, ובמשפט נאלץ להשיב את בעלות האתר לבעליו הקודם, לצד פיצוי כולל של כ-65 מיליון דולר.
מיון בועות
מיון בועות (באנגלית: Bubble Sort), הידוע גם בכינוי מיון החלפה הוא מיון השוואתי פשוט הפועל בסיבוכיות של formula_1. המיון קיבל את שמו מהדרך בה מבעבעים אלמנטים במערך: האלמנטים הכבדים בכיוון אחד, והקלים בכיוון ההפוך, וכך גם בינם לבין עצמם.
דוגמה.
מימוש ב-#C למיון בועות עבור מערך b:
bool swapped = true;
while(swapped)
swapped = false;
for (int i = 0; i &lt; b.Length - 1; i++)
if (b[i] &gt; b[i + 1])
t = b[i];
b[i] = b[i + 1];
b[i + 1] = t;
swapped = true;
ניתוח זמן הריצה.
סיבוכיות הזמן של האלגוריתם היא formula_1, (כיוון שעבור קבוצה של formula_6 מספרים דרושים עד formula_6 מעברים על הקבוצה, ויהיה צורך לבצע formula_6 מעברים במקרה ש-formula_9 הוא המספר הקטן ביותר בסדרה) דבר שהופך אותו ללא יעיל עבור נתונים רבים. לעומת זאת, עבור נתונים מעטים מאוד זהו המיון היעיל ביותר בשל פשטותו. עבור קלט ממוין חלקית או כמעט ממוין ייתכן שזמן הריצה יהיה נמוך יותר כיוון שהאלגוריתם יסיים את סידור המערך בפחות מ-formula_6 מעברים על המערך.
צבים וארנבים.
המרחק והכיוון אותו האיברים ברשימה צריכים לעבור משפיעים על הביצועים של האלגוריתם בגלל שאיברים זזים לכיוונים שונים במהירויות שונות. איבר שצריך לזוז לעבר סוף הרשימה יזוז מהר בגלל שהוא יוכל להשתתף בהשוואות רציפות. לדוגמה - האיבר הגדול ביותר ינוע כבר במעבר הראשון לסוף הרשימה בגלל שהוא יזוז בכל השוואה, בעוד שהאיבר הקטן ביותר ינוע רק מקום אחד אחורה בכל סיבוב. אם האיבר הקטן ביותר יהיה בסוף הרשימה, ידרשו n-1 מעברים לפני שהרשימה תהיה מסודרת. בשל הבחנה זו מכנים את האיברים האלו "צבים וארנבים" בהתאם לדמויות במשלו של איזופוס הצב והארנב.
כדי להתגבר על הבעיות בזמן ריצה שגורמים הצבים, פותחו וריאנטים של מיון בועות שמתגברים על הבעיה. מיון שייקר עובר על הרשימה לשני הכיוונים, וכך הצבים זזים מסוף הרשימה להתחלתה. מיון מסרק עובר על הרשימה בפערים קטנים והולכים, וכך נפטר מהצבים די מהר, ועובר לפערים קטנים יותר כדי לסדר את הרשימה.
מיון מיזוג
מיון מיזוג (באנגלית: Merge Sort) הוא אלגוריתם מיון רקורסיבי קל למימוש המתבסס על קלות מיזוגם של מערכים ממוינים. לאלגוריתם מיון המיזוג יש סיבוכיות זמן ריצה formula_1, וסיבוכיות זיכרון formula_2.
תיאור האלגוריתם.
האלגוריתם הומצא על ידי ג'ון פון נוימן בשנת 1945. אלגוריתם זה פועל בשיטת הפרד ומשול, הוא מחלק את הבעיה, מיון מערך, לשתי תת-בעיות קטנות יותר, מיון חציו הראשון של המערך ומיון חציו השני של המערך, ופותר אותן על ידי קריאה רקורסיבית לעצמו (הפרד). בתום פתרון תתי-הבעיות, ממזג האלגוריתם את שני חצאי המערך, הממוינים כעת, למערך ממוין גדול המכיל את כל איבריהם (משול) וזהו בדיוק פתרון הבעיה הראשונית.
מימוש מילולי.
ברמה העקרונית, עובד מיון-מיזוג בצורה הבאה:
מיין-מזג n איברים
בפסאודו קוד, המזכיר את שפת C, יראה האלגוריתם כך:
mergesort("Array" m)
if length(m) ≤ 1
return m
middle = length(m) / 2
for each x in m up to middle
add x to left
for each x in m after middle
add x to right
left = mergesort(left)
right = mergesort(right)
result = merge(left, right)
return result
מימוש המיזוג.
מיזוג שני מערכים ממוינים הוא מטלה פשוטה. נסתכל על האיבר הראשון בכל מערך (המערכים ממוינים ולכן זהו האיבר הקטן ביותר בכל מערך), האיבר הקטן מביניהם הוא האיבר הקטן ביותר שקיים (הוא קטן מכל איברי המערך שלו וקטן מהאיבר הראשון השני שקטן מכל איברי המערך שלו ולכן סה"כ הוא קטן מכל איברי המערכים) ולכן הוא יהיה האיבר הראשון במערך החדש. טיפלנו באיבר זה ולכן נסתכל על האיבר הבא באותו מערך, נמשיך להסתכל על האיבר הראשון במערך השני משום שבו עוד לא טיפלנו. כעת שוב אנו מסתכלים על שני האיברים הקטנים ביותר שקיימים ולכן הקטן מביניהם יהיה האיבר השני במערך החדש. נמשיך כך עד שנסיים את כל איבריו של מערך מסוים ואז נכניס ברצף את כל איברי המערך השני (הם כבר ממוינים כי המערך ממוין).
בשפה מקצועית יותר נאמר שאנו מצביעים על האיבר הראשון בכל מערך ואז מכניסים למערך החדש את האיבר הקטן יותר. אנו מקדמים את המצביע שהצביע על האיבר המוכנס באחד וחוזרים על התהליך. כאשר הגיע אחד המצביעים לסוף המערך, נכניס את יתר איברי המערך השני למערך החדש. מכיוון שעברנו על כל אחד מאיברי המערכים בדיוק פעם אחת וסה"כ קיימים formula_3 איברים, סיבוכיות המיזוג formula_2.
בפסאודו קוד יראה המיזוג כך:
merge(left,right)
while length(left) &gt; 0 and length(right) &gt; 0
if first(left) ≤ first(right)
append first(left) to result
left = rest(left)