Professional Documents
Culture Documents
Introduction To Java Programming CH6
Introduction To Java Programming CH6
ا ا
Java Programming Introduction to
Chapter 6 Arrays
و ازاي ﻥﻡ! ﻡه و اه
ایarray
ا دة هف ان ء ا
ی ای
.
% &! اﻡ
Basics Array .٦.٢
4د * و آ06ﻡ ا78 و ﻥdouble ع0م ﻡ ا2 ار١٠ !%ض اﻥ *وزی ﻥ,
&! آ! ﻡ% و ﻥdouble ع0 ﻡ&ات ﻡ ا١٠ اﻥ ﻥف6,ة آ ه7! آ2 9
2:*
:Aا ﻡ0 ﻡ&ات آﻥ١٠ ش0ﻥ6ض اﻥ ﻡ, => =? و > دة4% *وزی ﻥ4ا@
ا
ع دة0B0 ا4* وتarrays ال.6 =?ع ه@ ا0B0 ا7 ﻡ& اآ١٠٠٠ او١٠٠
.ع0 اD,*
ﻡ&ات ﻡ ﻥ0 % اﻥ ﻡarray ل * ال0@ر ﻥ7@ی@ ﻥ
@یJی@
آ
اJ لAﻡ اآ ﻡ اﻥ
و دة ﻡ78 !6و اFی@
اJو ا
double[] myList;
او
١٠ ﻥ
ﻡ06 ﻡdouble ع0 ﻡ اarray ـreference
@@L ا0 هmyList :
]0L4ﻡ
ق, و ﻥ ! اarray ` هmyList ل ان0@م دة ﻥ:6ل آ! ا0@ل ﻡ ﻥ7 6 ا ﻡD ?*
.array و اـreference ال
Values Array Size and Default .٦.٢.٣
6 ﻡ4د ا? ا7* =6د ﻡ ﻥ ﻥ7L زمF array ! رى0 ن ا6 ﻡE%L اﻡ
array ﻥف ﻡ
اي6 ﻥ& ﻡ و ﻡN, ﻡ اﻥﺉ ﻡ7 ﻥ وE8ﻥ
.١٠ ﺕوىmyList.length ت4ل اA اarrayRefVar.length ام78ﺱ
اﺉ
و7 ا2 !%ن ﻡ06 *وزی4 ا@ اOL! ﻡ ﻥ2 array الP اول ﻡ
@! وف ی% ه0 اﻥ٠ @م ی2رFع ﻡ ا0ن اي ﻥE8 هarray ال0 `ه
.false !% هBoolean ع0 ﻡ اT آﻥ0 ' وu0000\'
Variables Array Indexed .٦.٢.٤
-٠ مg 0 و هindex ام ال78م اي *\ ﺱ78 و ﻥarray ﻥ@! *? ال6 ﻡ
اس02F= ا6 4 ا0 هindex ان الX: و ﻥ,\أ ﻡ ا7 7 ان اj و دة ﻡbased
رم دى0, array اﺱ ال7 []! دة6 4ا
arrayRefVar[index];
و٠ أ ب7 ی@ هarrayRefVar.length ﻡarray ال0 ت ان4م ا:6 ﻡ ا,ﻥ
١٠ mylist (رة0\ ت ) ا4ل اA اarrayRefVar.length-1 ﺕ ـ
.٩ 2 ا\ ر7* ا0 و ی٠ ا ﻡ0ﺉ7 یdouble ع0*? ﻡ ا
زي ﻡ آindexed variable ام ال78م *?ه ﺱ78 ﻥ6 ﻡarray الP ﻡ7
م دة:6 ا4* لA ادى و دة ﻡvariable م ال78
myList[2] = myList[0] + myList[1];
array
آ! *\ ﻡ *? ال2 OL *ن ﻥloop م
ال78ل ﺕﻥ هAل ﻡ0@و ه
اo6 و ه١ OL[ هmyList[1 و٠ OL[ هmyList[0 ص ی8 اindex ال
for (int i = 0; i < myList.length; i++) {
myList[i] = i;
}
4* لAو دة ﻡ
double[] myList = {1.9, 2.9, 3.4, 3.5};
! دى%*
ا0 % ﻡP6 T ﺕ4
ا4 %ا
double[] myList = new double[4];
myList[0] = 1.9;
myList[1] = 2.9;
myList[2] = 3.4;
آarray د *? ال7* 0 ﻥ7, هN\ة دى ﻡ8 ی@
اJ ا7 اآD
@یJﻡ ا78 اﺱ0 زم ﻥف انF وnew
4ﻡش آ78 ﻡﺱT ﺕ4ی@
اJ ان اX:ﻥ
4 * 0 ة اﻥ7
وا4 ا@ آ! دة ﺝ4JL و ﻥU و ﻥarray زم ﻥف الF @دى ی
4د ا06 ه&! زي اN ﻡZ و اﻥﻡsyntax error @
ه4 اآ ﻡ ﺝ4* ﺝت دىLا
qJد ﺥ0
دة آ0@ه
double[] myList;
myList = {1.9, 2.9, 3.4, 3.5};
qJ8 اD, ﻥN@ل *ن ﻡAد ﻡ% ﻡ0 و هqJد دة ﺥ06ا
loop م ال78زم ﻥF و آنdouble ع0 ﻡ اT و آﻥarray ت > ال4ل اA ا
@یJ
*Jام اﻡ ا78ل ﺱ0> 4* > ا6 ﻡchar ع0 ﻡ اarray ﻥ7* 0 آF
دى
char[] city = {'D', 'a', 'l', 'l', 'a', 's'};
System.out.println(city);
و اﺱdouble ع0 ﻡ& ﻡ اZ اﺕOL و ﻥarray آ! *? الt %ل ﺕﻥ ﻥAل ﻡ0@ه
array ! ? اt %أ ﻥ7ب ه04ار ا6 ﺕt و ﻡ٠
اﺉ7
ا2
J ولF اtotal
( ١ – %) ﻥی7L ٠ یوىindex *\ *\ ﻡ ال
double total = 0;
for (int i = 0; i < myList.length; i++) {
total += myList[i];
}
ع0 و
هف ﻡ& ﻡ اarray اآ *\ ﻡ *? الt4Jن ﻥ4* ل ﺕﻥAو دة ﻡ
4 دة اarray
اول *\ ال2 اﺉ
ﺕوى7
ا2
max
دو اﺱdouble
array ! *? ال6 و ه@رن ا & دةarray
\ ﻡ *? ال2 !
اآ%ه
ا\ ا & و2 !% اآ ﻡ ا & هarray
*\ ال2 0 ب04ام ا78ﺱ
اo6ة و ه7 4\ ا4 !@ ه ! ﺝ
و ﻥN! ﻡ2 ا0 ة7 4\ ا4 !@ﻥ
double max = myList[0];
for (int i = 1; i < myList.length; i++) {
if (myList[i] > max) max = myList[i];
}
د06 و ه@ ا2 ع اآ رindex ! ال% اﻥ ﻥvL ق0 4د ا06ل ا7 ﻥ6 ا ﻡ
! دة6
double max = myList[0];
int indexOfMax = 0;
for (int i = 1; i < myList.length; i++) {
if (myList[i] > max) {
max = myList[i];
indexOfMax = i;
}
}
indexOfMax & اarray رت ال6
\ اﺕ2 اآ0 ت ان4د ا06 اX:ﻥ
وmyList[3] = 33.5 ض ان, ?& ﻡ یF اindex !
ال%ه
.٣
!% هindexOfMax &
ی@ ا2 اآ٣٣.٥ T و آﻥmyList[7]=33.5
Loops foreach .٦.٢.٧
اوforeach loop ﻡوف ﺱfor loop ﻡ ال7ی7! ﺝ6 ] JDK 1.5 ال
ﻡarray آ! *? ال4* ت4 ﻡ
ﻥ ! ا78 اﻡ ﻥ6 و دة ﻡenhanced for loop
.index م ال78 ﻡ ﻥs
! ام6و دة ا
for (elementType element: arrayRefVar) {
// Process the element
}
foreach ام78 ﺱarray آ! *? الtJ ازاي ﻥ4LB0ل یAو دة ﻡ
for (double element: myList) {
System.out.println(element);
}
\ اt> اmyList ?* ! *\ ﻡ6) ! دة6 د06 ﻥ@ى ا6 ت ﻡ4ل اA ا
., ﻥarray زي الdata type الD, ﻥ7زم یﺥF element & دة( ا
Arrays Example: Testing .٦.٢.٨
اره6د ﺕ7*
و2 د اآ7L Z و اﻥﻡinteger ع0م ﻡ ا78 ﻡ ا2 ٦ 7ل ﺥAدة ﻡ
م2 ار٦ ال
1 import javax.swing.JOptionPane;
2
3 public class TestArray {
4 /** Main method */
5 public static void main(String[] args) {
6 final int TOTAL NUMBERS = 6;
7 int[] numbers = new int[TOTAL NUMBERS];
8
9 // Read all numbers
10 for (int i = 0; i < numbers.length; i++) {
11 String numString = JOptionPane.showInputDialog(
12 "Enter a number:");
13
14 // Convert string into integer
15 numbers[i] = Integer.parseInt(numString);
16 }
17
18 // Find the largest
19 int max = numbers[0];
20 for (int i = 1; i < numbers.length; i++) {
21 if (max < numbers[i])
22 max = numbers[i];
23 }
24
25 // Find the occurrence of the largest number
26 int count = 0;
27 for (int i = 0; i < numbers.length; i++) {
28 if (numbers[i] == max) count++;
29 }
30
31 // Prepare the result
32 String output = "The array is ";
33 for (int i = 0; i < numbers.length; i++) {
34 output += numbers[i] + " ";
35 }
36
37 output += "\nThe largest number is " + max;
38 output += "\nThe occurrence count of the largest number "
39 + "is " + count;
40
41 // Display the result
42 JOptionPane.showMessageDialog(null, output);
43 }
44 }
زر هﻡ! ﻡه0 ا4 اmessages ! ال6 ن دة06و ه
و اﻥinteger ولF اarguments ٢ !@ m د اﺱ0A ﻡ4 * ت دة4ل اA ا
@4 ولF
ا & ا2 & وض اﻥ, و اinteger ع0 ﻡ اarray لreference
اﻡreturn ش4 و ﻡ٥٥٥٥
@4 array
اول *\ ﻡ *? ال2 & و١٠٠١
اﻥNول ﻡﺕ&ﺕF
ا & ا2 تE, ﻡ اﺕ7 ان2: هmain method الcall 4 ﻥ
ﻥs 0 یcall-by-reference اﺕ&ت و دة = اﻥarray ول الF
ا\ ا2
.&
ه4?F اarray د ال0A اﺥ! ا7 array ﺝ
ال
ﻥ
ﻡ& *دى وq آjد و هﻡ! ﻡ0A array *\ ﻡ *? الT ﻥ6 ﻡ:
]0L4ﻡ
array \*
ﻥq آNﻡ
ﻡ&ی ﻡ7و ﺥFم ا2ی! ار7د ﺕ0A ﻡ٢
0
ه4ع آ0B0 ة ا6 4LB0ل هAو دة ﻡ
اوى2 ل7 integer ع0 ﻡ اarray 7ﻥ
ﺥA و ا2 ل7 integer ع0ا
*\ی دو
د06ف ا0و ﻥ
1 public class TestPassArray {
2 /** Main method */
3 public static void main(String[] args) {
4 int[] a = {1, 2};
5
6 // Swap elements using the swap method
7 System.out.println("Before invoking swap");
8 System.out.println("array is {" + a[0] + ", " + a[1] + "}");
9 swap(a[0], a[1]);
10 System.out.println("After invoking swap");
11 System.out.println("array is {" + a[0] + ", " + a[1] + "}");
12
13 // Swap elements using the swapFirstTwoInArray method
14 System.out.println("Before invoking swapFirstTwoInArray");
15 System.out.println("array is {" + a[0] + ", " + a[1] + "}");
16 swapFirstTwoInArray(a);
17 System.out.println("After invoking swapFirstTwoInArray");
18 System.out.println("array is {" + a[0] + ", " + a[1] + "}");
19 }
20
21 /** Swap two variables */
22 public static void swap(int n1, int n2) {
23 int temp = n1;
24 n1 = n2;
25 n2 = temp;
26 }
27
28 /** Swap the first two elements in the array */
29 public static void swapFirstTwoInArray(int[] array) {
30 int temp = array[0];
31 array[0] = array[1];
32 array[1] = temp;
33 }
34 }
output ! ال6 ن دة06و ه
?
ا2 د0A 4
آﻥ ﻡ&ات *دیarray ان اﻡ اول *\ی الX:ﻥ
ن6ت ﻡE% د0A ن اF و دةN ﻡﺕ&ﺕ2 د06 اﻥ @
اD د0A اﺕ&ت ا
?8رى ا0
اي ﺝ
ه& ا2 &?
ی@ اﻡ ه8 &ات ا4 رى0 ا
ﻥs وarray ! reference اﻥ اﻡ ال،& هN
ﻡ4?Fرى ا0 د اﻥ ا0A
& د0A ی@
دى اJ نF
4د آ06
اول *\ی اﺕ&ت ا2
اول *\ی2
.array
*
ال4?Fرى ا0 ا
Method Returning an Array from a .٦.٥
array ــreturn ! ازاي ﻥ46 ه20 دmethods ـ4 array T ازاي ﻥ4* 46ا اﺕ
method ال
!@ method * د دة *رة06 اarray لreturn ! ازاي ﻥ4LB0د ه0دة آ
04@ ﻡarray الt و ﺕﺝ4@ و ﺕarray
ن4* د و0A ا ا0ه ﺝ4 * 4 اarray ع الreference ـ4 return 4 * اﻥX:ﻥ
ع0 اD, ﻡ ﻥarray ـreference دةreturn زم اﻥ ﻥ@! الF د دى0A م ا78ﻥ
! دة6
int[] list1 = {1, 2, 3, 4, 5, 6};
int[] list2 = reverse(list1);
Occurrences of Each Example: Counting the .٦.٥.١
Letter
}4* = وL ة7 آ7 اﺉ و0* ف١٠٠ P ولFل اAدة ﻡ
ام78 *\ ﺱ١٠٠ ﻥ
ﻡ06 ﻡarray 4% ف و ﻥ١٠٠ = ال6ة اﻥ ه0J•اول ﺥ
س:6دة ا0ﺝ0 ﻡ4)( اgetRandomLowerCaseLetter د0A ا
RandomCharacter
&4د وف ا7*)\* ٢٦ ﻥ
ﻡ06 ﻡarray
دو4%ار آ! ف و اﺱ6د ﺕ7* =•ا
(
یE4%ﻥFا
ﻡ78 ه4 اarrays ال4رة دى ه0\و ا
د06و دة ا
1 public class CountLettersInArray {
2 /** Main method */
3 public static void main(String args[]) {
4 // Declare and create an array
5 char[] chars = createArray();
6
7 // Display the array
8 System.out.println("The lowercase letters are:");
9 displayArray(chars);
10
11 // Count the occurrences of each letter
12 int[] counts = countLetters(chars);
13
14 // Display counts
15 System.out.println();
16 System.out.println("The occurrences of each letter are:");
17 displayCounts(counts);
18 }
19
20 /** Create an array of characters */
21 public static char[] createArray() {
22 // Declare an array of characters and create it
23 char[] chars = new char[100];
24
25 // Create lowercase letters randomly and assign
26 // them to the array
27 for (int i = 0; i < chars.length; i++)
28 chars[i] = RandomCharacter.getRandomLowerCaseLetter();
29
30 // Return the array
31 return chars;
32 }
33
34 /** Display the array of characters */
35 public static void displayArray(char[] chars) {
36 // Display the characters in the array 20 on each line
37 for (int i = 0; i < chars.length; i++) {
38 if ((i + 1) % 20 == 0)
39 System.out.println(chars[i] + " ");
40 else
41 System.out.print(chars[i] + " ");
42 }
43 }
44
45 /** Count the occurrences of each letter */
46 public static int[] countLetters(char[] chars) {
47 // Declare and create an array of 26 int
48 int[] counts = new int[26];
49
50 // For each lowercase letter in the array, count it
51 for (int i = 0; i < chars.length; i++)
52 counts[chars[i] - 'a']++;
53
54 return counts;
55 }
56
57 /** Display counts */
58 public static void displayCounts(int[] counts) {
59 for (int i = 0; i < counts.length; i++) {
60 if ((i + 1) % 10 == 0)
61 System.out.println(counts[i] + " " + (char)(i + 'a'));
62 else
63 System.out.print(counts[i] + " " + (char)(i + 'a') + " ");
64 }
65 }
Z! اﺕ6 و دة
ﻡa ح ف الJ ف و١٠٠ آ! ف ﻡ ال4* ا:وفL ا7*
@ح >ی
c ف آنLض ا,
ی7%Fوف اLف اL ﺕﺕ= ا4 هﺝ7ح اآJ اZآ! ف و ﻥﺕ
وc فLار ا6 ﺕ4* ل7 4ﻥ ه` اF 7ا0 [counts[2 ودEة ﻥ76 وc – a = 2 @ی
وفL! ا6 ة7 ! آ
! آ4* ی! اﻥ ﻥ7ﻡش آن ه@ ا78 ﻡﺱ0 نF آ اوى4* ی@
دى وتJا
وفL ی
ا...............c یوىF وb یوىF وa
یوى0ف و ﻥ
Lists Variable-Length Argument .٦.٦
دی
ط اﻥ7L ﻡNده ﻡ7* arguments
*0 % ﻡmethod لT ﻥ6 ﻡJDK 1.5
ام78 ﺱargumentss ع ال0 ﻥ7 O@ ﻥ٣ ودE ة ﻥ7ع و ! آ0 اD,ا ﻡ ﻥ0ﻥ06ی
ی@
دىJا
typeName... parameterName
و ال ﺝVariable-Length Argument @ اﺱarguments
دى اـL ا
OL و ﺕarray P ع دة0B0 ﻡ ا78 اﻥ اﺱ2: ` اﻡarray ﻡ! ﻡه آﻥ
*
ﻡ&ات *دی0 %د ﻡ0A 4 T ﻥ6 ف اﻥ ﻡ: اﺥt ﻡ4 ه4 ا &ات ا2
array 4د او ﻥ7* ي
ع0B0 ا4LB0ل هAو دة ﻡ
1 public class VarargsDemo {
2 public static void main(String args[]) {
3 printMax(34, 3, 3, 2, 56.5);
4 printMax(new double[]{1, 2, 3});
5 }
6
7 public static void printMax( double... numbers) {
8 if (numbers.length == 0) {
9 System.out.println("No argument passed");
10 return;
11 }
12
13 double result = numbers[0];
14
15 for (int i = 1; i < numbers.length; i++)
16 if (numbers[i] > result)
17 result = numbers[i];
18
19 System.out.println("The max value is " + result);
20 }
21 }
Arrays Searching .٦.٧
ا و7ری ﺝ0ی@ ﻡJ ء دة هE% اD arrays الvL4 ا7 >ق آ ﺝ
4ﺱ
Approach The Linear Search .٦.٧.١
\* !6 @رﻥF F وarray دة0ﺝ0
*وزی ﻥف ه` ﻡ2 ﻥ7*
ی@
دى *دیJا
F Fد و0ﺝ0ة ف ه! ا\ ﻡ76 ﻥی و7L array ﻡ *? ال
*وزی4
ا@
ا2: ه4 اindex ال2 رt ﺝlinear search د ال0A د0و دة آ
١- t ا@
دى هﺝN@4 ﻡ0 و
method main ! دى و ا@ دى و > ﻡش ال%ام ا78د دى ﺱ0A ب ا% ﻥ6 و ﻡ
[php/]{؛٢ ،php]int[] list = {1, 4, 4, 2, 5, -3, 6]
[php]
[center][b]int i = linearSearch(list, 4); // returns 1[/b][/center]
[center][b]int j = linearSearch(list, -4); // returns -1[/b][/center]
[b][/center][/php/]٥ center][b]int k = linearSearch(list, -3); // returns]
4م ا2رFد ا7* 4* ﻡ@رﻥ
یlist.length ی@رنJ ه4ﻡی06وف اgء ا0ه اﺱ
vL
Approach The Binary Search .٦.٧.٢
د ﻡ, ﻥF
ن ﻡﺕ06
ا? ﺕ2 زمF ی@
دى ط انJی@
اﻥ
اJو دى ا
ﻥF ی@
دىJم ا78 ا? ﻡﺕ
ی@ ﻥT آﻥ04 د ا @رﻥت7* !4@اﺕ= دة ﺕ
= و هف اT ﺕ4ی@
اJ ﻡ ا6 !ا
ا4 \ ا2: *وزی ﻥ4ی@
دى @رن ا@
اJ ا
ولFء اE% اvL ! 6
ا\ ی@ ه2
ا?& ﻡ4* ور7 4د ا7 @ ا0•
4 ﺥvL ا ی@ ا4 آن وى ا\ ا0•
ﺥFء اE% اvL ! 6
ا\ ی@ ه2
اآ ﻡ4* ور7 4د ا7 @ ا0 •اﻥ
ﻡةlog2n ﻥ@رنJت هFLء ا0 ی@ اﺱn د ا? آن7* ض ان, اﻥX:ه
ی@
دىJة ا02 و ه` دىD ﻡات١٠ *\ ه@رن١٠٢٤ ﻥ7* آن0 ی
١١ 2 ر4* ور7 م و ا2*
ار0 %ل ﻡA[ ﻡB0 رة دى0\ا
2 ا0 ی اﻡ2
اT@ 4ن ا6 ع اindex الtد ﺝ0A ﻡ0 هbinary search ال
4ن ا6
– )ا,48ی@
ﻡJ ن6
اOLوض ی, ا4ن ا6 اtد ﺝ0ﺝ0 ﻡNﻡ
@ ی2: هN ﻡ٥ 4* ور7 ض اﻥ, ت4ل اA ( ی ا١ +
OLوض ی, ا
٣- 4د ﺕﺝ0A وض ا, ا
د0A 4 د06و دة ا
1 public class BinarySearch {
2 /** Use binary search to find the key in the list */
3 public static int binarySearch(int[] list, int key) {
4 int low = 0;
5 int high = list.length - 1;
6
7 while (high >= low) {
8 int mid = (low + high) / 2;
9 if (key < list[mid])
10 high = mid - 1;
11 else if (key == list[mid])
12 return mid;
13 else
14 ;low = mid + 1
15 }
16
17 ;return -low - 1
18 }
} 19
ﻥ X:ا06د ا 4ت ان 0ال low>highﻡ آ7ة ان ا 2ﻡ Nﻡ0ﺝ0د t4Jﻡ ا 0Aد
و ﻡ 6ﻥ%ب ا06د ا 4ت ﺱ78ام ا ! %دى
][int list = {2, 4, 7, 10, 11, 45, 50, 59, ;}60, 66, 69, 70, 79
int i = binarySearch(list, 2); // returns 0
int j = binarySearch(list, 11); // returns 4
int k = binarySearch(list, 12); // returns –6
ﻡ> :
]0L4ی@
ال linear searchآ0ی
ان اFر2م ا 4ه vLﻡ Nآ او 0
آﻥ Tﻡ Nﻡﺕ
اﻥ
0اFر2م ﻡﺕ
ی@ ال binary searchا!
Arrays Sorting .٦.٨
اﺕ= زي ا78 vLﻡ
ﺝت آ و اE%ء دة ه@0ل آoا >ی@
4ﺕ=
Sort Selection .٦.٨.١
دى >ی@
ﻡ >ی اﺕ= ا و
, ،ض اﻥ *وزی ﻥﺕ= ﻡ
*0 %ار2م ﺕﺕ= ﺕ\*7ى
ال 4* selection sortآ! ا7*Fاد و @! اآ ر 2اﺥ ا
*0 %و 7آ7ة
* 4ا7*Fاد ا 4اﺕ@ Tﻡة ﺕﻥ
و ی0ف اآ ر 2اFر2م ا 4اﺕ@ Tو ی@ !2
4اFﺥ و
ی ﻡة ﺕ
و ی@! ا 2اFآ ا 4اﺕ@0ا !2 !2اFﺥ و ی ! آ7ة 7Lﻡ ا7*Fاد آ4
ﺕﺕ=.
و ا\0رة ﻡAل ی6 [B0ة ال selection sort
اول ﻡة ﻡی * 4ا7*Fاد آ @ 4ان ر ٩ 2ه 0اFآ * 4ﺕ7ی! ﻡ
و ا2
اFﺥ 7آ7ة ﻡی * 4ا7*Fاد آ 4ﻡ *7ا ا 2اFﺥ @ ان ٨ه 0اFآ ﻥ@4ة ا 6ن
!2اFﺥ و هo6ا 7Lﻡ رﺕ آ! اFر2م
double ع0 ﻡ اarray =م دة ﺕ:6 اE, ی4د ا06ف ا0 ه20و د
1 public class SelectionSort {
2 /** The method for sorting the numbers */
3 public static void selectionSort(double[] list) {
4 for (int i = list.length - 1; i >= 1; i--)
5 // Find the maximum in the list[0..i]
6 double currentMax = list[0];
7 int currentMaxIndex = 0;
8
9 {for (int j = 1; j <= i; j++) {
10 if (currentMax < list[j]) {
11 currentMax = list[j];
12 currentMaxIndex = j;
13 }
14 }
15
16 // Swap list[i] with list[currentMaxIndex] if necessary;
17 if (currentMaxIndex != i) {
18 list[currentMaxIndex] = list[i];
19 list[i] = currentMax;
20 }
21 }
22 }
} 23
و ﻡ 6ﻥ%ب ا06د ا 4ت ! %دى
;)}selectionSort(new double[]{2, 1
;)}selectionSort(new double[]{2, 3, 1
;)}selectionSort(new double[]{1, 2, 1
Sort Insertion .٦.٨.٢
و دى >ی@
ﺕﻥ
ﺕ= ﻡ
*0 %ار2م اJی@
دى 6ﺕ اﻥ 7أ ﻡ اول ر 2و ﻥ !8ان ان
ﻡ
*0 %ار2م ﻡﺕ
)اول ﻡ 7أﻥ ﻡ,ش ا Fاول ر 7 (2آ7ة ﻥﺥ 7ا 2اﻥ و ﻥ0ف
ﻡ 24
B0اFول 0ا?& ﻡ
ی@ ه 0 7اآ ﻡ
ی@ ﻡ6ﻥ
?[ 7آ7ة
ﻥ0ف ا 2ا Tو ﻥ@رﻥ
2ا !2 4آ7ة و ﻥ
JLﻡ6ﻥ
ا 0gط و ﻥ ! آ7ة 7Lﻡ
ﻥ 48اFر2م آ 4و دى رﺱ
ﺕ [B0ا:6م دة
زي ﻡ 02ا !8وﺝ0د ﻡ
*0 %ار2م اFول *\ وا) 7اFول( 7أ ﺉ
ﺕ= و آ! ﻡة ﺥ 7ر 2ﻡ ا
*0 %ا
4?Fا
*0 %ا ﺕ
Eی \ 7و ا
*0 %
ا ﻡ Nﻡﺕ
@! \ 7Lﻡ ﺕ@ ﻡ
*0 %اFر2م ا
4?Fآ 4ﻡﺕ
اFﺥ اي *\
JLا
*0 %ا ﺕ
Fزم ﻥ7Lد ﻡ6ﻥ
اﺕ= *4ن ﻥ 4* XLﺕﺕ= ا
*0 %و
ا\0رة دى ازاي ﻥEود *\ ا
*0 %ا ﺕ
(1) Index is 4
(2) Index is -6
(3) Index is 0
(4) Index is -4
F و9 وواarray ٢ ن ﻥف اذا آن4* equals د ﺕﻥ
اﺱ0Aم ﻡ78 ﻥ6 و ﻡ
[B0ل یAل ﻡ0@ ه0 یﺕ وى0L
ان ﻡ9 وىarrays و الF
اﻡ78اﺱ
int[] list1 = {2, 4, 7, 10};
int[] list2 = {2, 4, 7, 10};
int[] list3 = {4, 2, 7, 10};
System.out.println(java.util.Arrays.equals(list1, list2)); // true
System.out.println(java.util.Arrays.equals(list2, list3)); // false
نF list3 وىN ﻡlist1 اﻥ9 یﺕ زي0Lن ﻡF list2 وىlist1 ل دةA ا
,48یﺕ ﻡ0Lﻡ
ﻡ و دة2 ء ﻡE او ﺝarray 4 ﻡه ﻥ78 اﺱ0 6 ﻡfill د ﺕﻥ
اﺱ0Aو ﻡ
اﻡ78ل ی اﺱAﻡ
int[] list1 = {2, 4, 7, 10};
int[] list2 = {2, 4, 7, 10};
java.util.Arrays.fill(list1, 5); // fill 5 to the whole array
java.util.Arrays.fill(list2, 1, 3, 8); // fill 8 to a partial array
or
arrays الIو ا! یFی@
اJام ا78ة ان اﺱ7! آ2 02 و زي ﻡ
integer ع0 ﻡ اD array-٢ Iل یAو دة ﻡ
int[][] matrix;
or
ه و70
4 ة ﺕف ﺝ7 *Fد ا7* وD array-٢ ! ف0,\د ا7* ﻥف6 ﻡ:
]0L4ﻡ
[][new int[5 ام78 ﺱD ف0,\د ا7* I>ی@
ﺕی
Arrays Processing Two-Dimensional .٦.١٠.٤
دىarray ض اﻥ * ال,
int[][] matrix = new int[10][10];
D arrays-٢ الt ﻥﻡ! ﻡ6 ازاي ﻡ4LB0 دى ﺕarray ال4*
4Aی
اﻡ0 ل0@ه
د دة06ام ا78 ﺱ٩٩ ا١ اﺉ
ﻡ7 ا2 OLه.١
for (int row = 0; row < matrix.length; row++) {
for (int column = 0; column < matrix[row].length; column++) {
matrix[row][column] = (int)(Math.random() * 100);
}
}
د دة06 *?هtJه.٢
for (int row = 0; row < matrix.length; row++) {
for (int column = 0; column < matrix[row].length; column++) {
System.out.print(matrix[row][column] + " ");
}
System.out.println();
}
د دة06 (:A ﻡ٠ 2د ر0د )اﻡ7Lد ﻡ0 آ! ا? *ﻡt ﺝ.٤
for (int column = 0; column < matrix[0].length; column++) {
int total = 0;
for (int row = 0; row < matrix.length; row++)
total += matrix[row][column];
System.out.println("Sum for column " + column + " is " + total);
}
ع ﻡ0 %د اآ ﻡ% و ایI? !ع آ0 %ب ﻡ.٥
int maxRow = 0;
int indexOfMaxRow = 0;
Zﻥﻡ4 د06و دة ا
1 public class GradeExam {
2 /** Main method */
3 public static void main(String args[]) {
4 // Students' answers to the questions
5 char[][] answers = {
6 {'A', 'B', 'A', 'C', 'C', 'D', 'E', 'E', 'A', 'D'},
7 {'D', 'B', 'A', 'B', 'C', 'A', 'E', 'E', 'A', 'D'},
8 {'E', 'D', 'D', 'A', 'C', 'B', 'E', 'E', 'A', 'D'},
9 {'C', 'B', 'A', 'E', 'D', 'C', 'E', 'E', 'A', 'D'},
10 {'A', 'B', 'D', 'C', 'C', 'D', 'E', 'E', 'A', 'D'},
11 {'B', 'B', 'E', 'C', 'C', 'D', 'E', 'E', 'A', 'D'},
12 {'B', 'B', 'A', 'C', 'C', 'D', 'E', 'E', 'A', 'D'},
13 {'E', 'B', 'E', 'C', 'C', 'D', 'E', 'E', 'A', 'D'}};
14
15 // Key to the questions
16 char[] keys = {'D', 'B', 'D', 'C', 'C', 'D', 'A', 'E', 'A',
'D'};
17
18 // Grade all answers
19 for (int i = 0; i < answers.length ; i++) {
20 // Grade one student
21 int correctCount = 0;
22 for (int j = 0; j < answers[i].length ; j++) {
23 if (answers[i][j] == keys[j])
24 correctCount++;
25 }
26
27 System.out.println("Student " + i + "'s correct count is " +
28 correctCount);
29 }
30 }
31 }
Z ﻡ اﻥﻡZ! اﺕ6 و دة