Largest 10 numbers
Find a largest 10 numbers from 1 million unsorted numbers.
Here is simple example i/p: {1,2,3,4,5,10,9,8,7,6,11,12,13,14,15,20,8,5,21,25}
o/p: 25 21 20 15 14 13 12 11 10 9
Here is simple example i/p: {1,2,3,4,5,10,9,8,7,6,11,12,13,14,15,20,8,5,21,25}
o/p: 25 21 20 15 14 13 12 11 10 9
Algo:
Step1: Take first 10 numbers into one array (call it as largest numbers array) and sort it using insertion sort
Step2: Compare 11th number onwards with minimum value of sorted array until end of 1 million numbers
if a[i] > minimum value of largest numbers array then
Replace minimum value of largest numbers array with a[i]
Sort the largest numbers array
Step3: Return largest numbers array
Step1: Take first 10 numbers into one array (call it as largest numbers array) and sort it using insertion sort
Step2: Compare 11th number onwards with minimum value of sorted array until end of 1 million numbers
if a[i] > minimum value of largest numbers array then
Replace minimum value of largest numbers array with a[i]
Sort the largest numbers array
Step3: Return largest numbers array
Sol:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
| int [] LargestTenNumbers( int [] a) { int [] largestNums = new int [ 10 ]; int i; //Insert first 10 numbers into largestNums array for (i= 0 ; i< 10 ; i++) { largestNums[i]=a[i]; } //Sort first 10 numbers of largestNums array in descending order InsertionSort(largestNums); // Go through the remaining numbers, replace min value of largestNums array // with larger value if any and then sort the largestNums array for (;i<a.length;i++) { if (a[i]>largestNums[ 9 ]) { // replace minimum value largestNums[ 9 ]=a[i]; // sort the largestNums array in descending order InsertionSort(largestNums); } } return largestNums; } /** * Insertion sort in descending order * @param a */ void InsertionSort( int [] a) { for ( int i= 1 ; i<a.length; i++) { int value=a[i]; int j; for (j=i; j> 0 && a[j- 1 ]<value; j--) { a[j]=a[j- 1 ]; } a[j]=value; } } |
No comments:
Post a Comment