صفن کي ترتيب ڏيڻ سڀ کان عام عملن مان هڪ آهي جاوا جي شروعات ڪندڙ کي ڄاڻڻ گهرجي ته ڪيئن ڪجي. جيتوڻيڪ arrays هميشه ڊيٽا کي ترتيب ڏيڻ لاء سڀ کان وڌيڪ آسان طريقو نه آهن ۽ اهو اڪثر ڪري ننڍن انگن تي لاڳو ٿئي ٿو، تصور جي ترتيب جي پويان پيچيده سافٽ ويئر ۽ ڊيٽا سائنس ۾ ڪيترن ئي ايپليڪيشنون آهن. هن پوسٽ ۾، اسان هڪ ويجهي نظر ڪنداسين ته ڇا داخل ٿيڻ جي ترتيب آهي. اسان ڪجھ مثالون ۽ مشق مسئلا شامل ڪيا آھن توھان جي مدد ڪرڻ لاءِ توھان کي ھن تصور جي مڪمل طور تي پھانسي حاصل ڪرڻ ۾.
اچو ته ان پٽ تي هڪ ويجھو نظر رکون ۽ داخلا جي ترتيب جي آئوٽ:
داخل ڪرڻ جي ترتيب ڇا آهي؟
بنيادي طور تي، داخل ڪرڻ جي ترتيب هڪ الورورٿم آهي ڊولپرز استعمال ڪن ٿا ننڍن انگن جي تارن کي منظم ڪرڻ لاء. اهو سڀني قدرن کي ٻن اسٽيڪ ۾ ورهائي ٿو - هڪ ترتيب ڏنل ۽ هڪ غير ترتيب ڏنل. هڪ هڪ ڪري، ”غير ترتيب ڏنل“ اسٽيڪ ۾ انگ ڪڍيا ويندا آهن ۽ صحيح ترتيب ۾ رکيا ويندا آهن.
- ان پٽ: هڪ صف A سان گڏ غير ترتيب ڏنل عددي عناصر: A[0,1, n, n-2...].
- آئوٽ پُٽ: هڪ صف جنهن ۾ ساڳيا انگ هجن پر مڪمل ترتيب ڏنل هجن. هي هڪ عام طور تي حوالو ڏنو ويو آهي B: B[0]B[1]...B[n-1].
- عددي ترتيب (وڌندڙ ترتيب): [1، 2، 3، 4، 5]
- عددي ترتيب (گهٽجڻ واري ترتيب): [5، 4، 3، 2، 1]
- الفابيٽ جي ترتيب: [a، b، c، d]
داخل ٿيڻ جي ترتيب جي نظريي کي سمجھڻ
داخل ڪرڻ جي ترتيب جي پويان ڪوڊ کي ڳولڻ کان اڳ، اچو ته غير ٽيڪنيڪل ٻولي استعمال ڪندي الگورتھم کي ٽوڙيو. ڇاڪاڻ ته اسان کي ترتيب ڏيڻ لاءِ ڪوڊ ڏيکاريندا سين مٿي واري ترتيب ۾، اهو سمجهه ۾ اچي ٿو ته وضاحت ڪرڻ الورورٿم قدم قدم هن پوسٽ ۾. مرحلا 1. ان جي وچ ۾arr[1]
۽ arr[n]
ڪٿي n
عددي قدر عام طور تي 10 کان گھٽ هوندي آهي. قدم 2. ان عنصر جو مقابلو ڪريو جيڪو توهان چونڊيو آهي (جي نالي سان سڃاتو وڃي ٿو key
) کي ترتيب ۾ استعمال ڪندي پوئين نمبر سان sort()
. مرحلا 3. جيڪڏهن سڀئي عنصر انهن جي جانشين کان ننڍا آهن، مقابلي کي ورجايو جيستائين توهان کي وڏي قيمت نه ملي. مرحلا 4. ترتيب ڏنل ترتيب ٺاھڻ لاءِ ھڪڙي وڏي قدر ھڪڙي پوزيشن کي ننڍي ھڪڙي کان وڌيڪ تبديل ڪريو. قدم 5. عمل کي ورجايو جيستائين توھان اکرن جي ھڪڙي ترتيب واري تار حاصل ڪريو
پرائمري صفن کي ترتيب ڏيڻ
جيئن ته الورورٿم جاوا جي سڀ کان وڌيڪ سادي عملن مان هڪ آهي، جيتوڻيڪ مڪمل شروع ڪندڙن کي ان کي لاڳو ڪرڻ ۾ ڪا به تڪليف نه ٿيڻ گهرجي. هتي هڪ صف کي ترتيب ڏيڻ لاءِ قدم قدم گائيڊ آهي1. ترتيب ڏيڻ لاءِ هڪ صف جو اعلان ڪريو
شروع ڪرڻ لاءِ، اچو ته قدرن جو هڪ اسٽرنگ ٺاهيو جيڪو بعد ۾ جاوا استعمال ڪندي ڏيکارينداسين. داخل ڪرڻ جي ترتيب کي استعمال ڪرڻ لاءِ، توھان کي ھڪ صف ٺاھڻ جي ضرورت آھي. انهي لاء، استعمال ڪريوint[]
int[] arrayA = {10, 14, 20, 30};
2. algorithm لاڳو ڪرڻ لاء sort_arr استعمال ڪريو
sort_arr طريقو ھڪڙو عام طريقو آھي جيڪو داخل ڪرڻ جي ترتيب کي لاڳو ڪرڻ لاء. عملي طور تي، اهو هن طرح نظر اچي ٿو:for(int i=0; i< sort_arr.length; ++i){
int j = i;
3. هڪ لوپ ٺاهيو ۽ هڪ آئٽرٽر
داخل ڪرڻ جي ترتيب واري الگورتھم ۾ لوپ استعمال ڪندي، ڊولپرز کي هر عنصر لاء منطق کي ورجائڻ جي ضرورت ناهي. جيتوڻيڪ لوپ ٺاهڻ پيچيده لڳي ٿو، اهو بلڪل سادو آهي - هتي هڪ مثال آهي:for(int i=0; i< sort_arr.length; ++i){
ھاڻي توھان وٽ ھڪڙو ڪم ڪندڙ لوپ آھي، اھو وقت آھي ھڪڙو ٺاھيندڙ ٺاھيو جيڪو سڀني عناصر کي مطلوب ترتيب ۾ ترتيب ڏيندو. ھاڻي کان وٺي، اسين پھريندڙ کي " j
" طور حوالو ڪنداسين.
int j = i;
4. ”جڏهن ته لوپ“ ٺاهڻ
جڏهن اهو داخل ڪرڻ جي ترتيب ۾ اچي ٿو، هڪ "جڏهن" لوپ هڪ نئين، ترتيب ڏنل صف لاء ضروري آهي. ان کي ترتيب ڏيڻ لاءِ ترتيب ڏيڻ لاءِ ترتيب ڏيڻ واري ترتيب واري ترتيب، هڪ ڊولپر کي ٻن شرطن تي عمل ڪرڻ جي ضرورت آهي:- j کي مقرر ڪيل قدر 0 کان وڌيڪ هجڻ گھرجي
- مقرر ڪيل قدر انڊيڪس
j-1
کان وڌيڪ هجڻ جي ضرورت آهيj
j
انڊيڪس جي برابر هوندي.
5. صف کي ترتيب ڏيڻ
توھان کان پوءِ جڏهن لوپ سيٽ اپ ڪريو،j
۽ j-1
ويلز تبديل ڪيا ويندا جيستائين ھڪڙي يا ٻئي حالتون جڏھن لوپ ناڪام ٿي وڃن. اهڙي طرح، ترتيب ڏيڻ کي هر قيمت لاءِ بار بار ڪيو ويندو لوپ لاءِ جيستائين لوپ جون حالتون ناڪام ٿي وڃن. ھتي آھي ڪيئن داخل ڪرڻ جي ترتيب جو عمل عملي طور تي ڪم ڪري ٿو:
int key = sort_arr[j];
sort_arr[j] = sort_arr[j-1];
sort_arr[j-1] = key;
j = j-1;
هڪ ArrayList ترتيب ڏيڻ
جيتوڻيڪ داخل ڪرڻ جي ترتيب جي پويان رياضي کي سمجهڻ ضروري آهي، جڏهن اهو حقيقي زندگي جي سافٽ ويئر ڊولپمينٽ جي اچي ٿي، توهان کي ترتيب ڏيڻ وارا هوندا ArrayLists کي ترتيب ڏيڻ کان وڌيڪ بنيادي صفن ۾. هتي هڪ ArrayList ترتيب ڏيڻ لاءِ قدم قدم گائيڊ آهي:- انهن شين لاءِ هڪ نئون
Element
ڪلاس ٺاهيو جيڪو مجموعو سان تعلق رکي ٿو.public class Element { private int id; public Element(int id) { this.id = id; }
- ھڪڙي مجموعن ۾، ھڪڙو طريقو آھي
compareTo()
- اسان ھن کي استعمال ڪنداسين ٻن عنصرن جي سڃاڻپ کي موازنہ ڪرڻ لاء.public int compareTo(Element element) { int res = 0; if (this.id < element.getId()) { res = -1; } if (this.id > element.getId()) { res = 1; } return res; } }
- الگورتھم کي لاڳو ڪريو ۽ شيون ٺاھڻ لاءِ ڪجھ لوپ ٺاھيو
ArrayList
انھن جي مقابلي ڪرڻ بدران.public static void insertionSortArrayList(List<element> list) { for (int j = 1; j < list.size(); j++) { Element current = list.get(j); int i = j-1; while ((i > -1) && ((list.get(i).compareTo(current)) == 1)) { list.set(i+1, list.get(i)); i--; } list.set(i+1, current); } }
- توھان پڻ شامل ڪري سگھوٿا وڌيڪ عناصر
ArrayList
، جيئن ھيٺ ڏيکاريل آھي:List<element> list = new ArrayList<>(); // Create elements w/ IDs 0-24 for (int i = 0; i < 25; i++) { list.add(new Element(i)); } // To use insertion sort, shuffle the values Collections.shuffle(list);
- هاڻي اهو وقت آهي ترتيب ڏيڻ جو:
// This helps print values before sorting list.forEach(e -> System.out.print(e.getId() + ", ")); // Sort the list insertionSortArrayList(list); System.out.println(); // Display a sorted array list.forEach(e -> System.out.print(e.getId() + ", "));
- ھاڻي اچو ته ان پٽ ۽ آئوٽ جو مقابلو ڪريون ته جيئن اسان ڪا غلطي نه ڪئي آھي. هتي اسٽرنگ جو مقابلو آهي جيڪو اسان مثال طور استعمال ڪيو آهي.
4, 2, 6, 7, 0, 5, 9, 1, 8, 3, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
GO TO FULL VERSION