Problem Statement
The sortness of a sequence of distinct numbers is the average of the sortness of each element. The sortness of an element is the number of higher elements that come before it in the sequence plus the number of lower elements that come after it in the sequence. The lower the sortness of a sequence, the closer it is to being sorted. Only a sorted sequence has a sortness of 0.
For example, in the sequence {3,2,1,4,6,7,5,8} the numbers 1,2,3 and 5 have a sortness of 2, numbers 6 and 7 have a sortness of 1 and numbers 4 and 8 have a sortness of 0. The sortness of the sequence is the average of all those sortness values: (2+2+2+2+1+1+0+0)/8 = 1.25.
You will be given a sequence of distinct numbers a as a
Definition
- Class:
- Sortness
- Method:
- getSortness
- Parameters:
- int[]
- Returns:
- double
- Method signature:
- double getSortness(int[] a)
- (be sure your method is public)
Constraints
- a will contain between 1 and 50 elements, inclusive.
- a will contain exactly one occurrence of each integer between 1 and the number of elements in a, inclusive.
Examples
{3,2,1,4,6,7,5,8}
Returns: 1.25
The example in the problem statement.
{1,2,3}
Returns: 0.0
A sorted sequence has a sortness of zero.
{5,4,3,2,1}
Returns: 4.0
A reversed sequence has maximum sortness.
{1,5,8,7,9,6,10,12,11,3,4,2}
Returns: 5.166666666666667
{1}
Returns: 0.0
{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,49,50}
Returns: 0.0
{50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1}
Returns: 49.0
{49,40,48,47,46,45,44,43,42,41,50,39,38,37,36,35,34,33,31,32,20,29,28,27,26,25,24,23,22,21,30,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,1,2}
Returns: 47.44
{1,2}
Returns: 0.0
{2,1}
Returns: 1.0
{1,3,2}
Returns: 0.6666666666666666
{2,1,3}
Returns: 0.6666666666666666
{2,3,1}
Returns: 1.3333333333333333
{3,1,2}
Returns: 1.3333333333333333
{3,2,1}
Returns: 2.0
{28,46,30,27,38,14,19,7,49,33,8,3,48,6,2,21,35,11,24,26,12,47,41,22,20,44,43,15,18,1,31,36,29,40,16,34,17,37,39,13,42,4,10,23,9,5,32,45,50,25}
Returns: 24.36
{21,8,5,6,22,18,20,19,14,12,15,13,4,16,11,3,9,10,1,2,17,7}
Returns: 14.090909090909092
{12,1,14,11,7,5,10,13,4,3,8,2,9,6}
Returns: 8.142857142857142
{12,16,44,5,38,28,39,45,10,2,30,33,15,37,43,29,36,13,25,23,27,3,24,21,4,22,35,17,31,32,8,26,1,7,14,41,11,19,18,9,42,34,40,20,6}
Returns: 24.4
{11,7,8,1,18,19,14,36,16,23,40,24,39,29,10,34,6,13,4,31,41,2,32,26,17,42,3,21,37,15,20,25,5,33,9,12,27,22,30,28,38,35}
Returns: 16.761904761904763
{37,34,10,44,7,12,24,36,5,14,19,30,32,9,46,25,20,35,43,39,26,42,15,27,13,1,45,18,48,33,40,17,22,41,21,6,49,47,2,16,29,3,28,23,11,8,4,38,31}
Returns: 24.979591836734695
{11,23,46,42,37,30,40,2,44,19,3,8,35,38,29,4,14,17,22,31,7,15,45,25,1,6,39,47,41,27,24,5,16,43,33,13,10,9,20,12,34,36,28,21,32,18,26}
Returns: 23.95744680851064
{29,32,27,22,43,45,8,5,38,2,12,31,42,17,37,46,48,36,25,6,23,18,14,41,28,15,10,34,24,19,16,9,21,7,4,11,44,13,20,30,33,3,35,1,26,40,47,39}
Returns: 25.0
{33,45,32,36,27,42,31,37,44,14,16,8,6,9,43,22,39,30,7,48,4,38,24,10,3,29,50,47,18,2,41,34,20,28,15,46,25,12,13,11,21,49,5,23,1,35,40,26,17,19}
Returns: 27.8
{7,24,28,25,2,4,3,13,15,6,9,5,18,8,12,19,10,27,23,1,16,20,17,11,21,14,22,26}
Returns: 10.5
{16,42,50,47,13,2,35,10,49,12,45,43,7,3,29,30,20,17,28,41,18,32,33,25,34,23,48,22,21,14,26,44,38,1,15,40,5,39,24,31,11,4,6,19,46,9,8,36,37,27}
Returns: 26.88
{23,42,39,16,2,45,1,38,35,32,5,9,15,8,34,33,41,18,4,28,3,43,46,29,47,17,7,19,14,24,21,13,31,25,26,40,22,12,44,20,27,37,30,11,36,6,10}
Returns: 23.48936170212766
{11,18,1,15,17,6,9,23,14,13,3,12,4,8,16,22,10,5,7,24,21,2,20,19}
Returns: 10.666666666666666
{24,17,28,21,10,19,30,13,34,7,23,36,11,12,15,18,1,3,14,31,35,27,6,25,29,33,22,16,20,26,5,32,4,8,2,9}
Returns: 19.666666666666668
{14,8,27,9,18,7,3,21,6,11,19,26,10,5,4,28,2,22,15,24,20,23,25,16,13,1,12,17}
Returns: 12.857142857142858
{6,18,34,11,19,4,23,39,29,33,10,5,9,30,22,46,32,27,40,24,17,8,45,3,48,36,20,25,35,26,38,28,12,42,1,41,21,49,14,44,31,47,7,2,15,37,43,16,13}
Returns: 21.510204081632654
{15,43,32,40,17,10,9,36,2,38,30,33,41,1,11,31,29,39,22,28,23,42,21,8,27,6,18,19,37,34,7,20,14,24,35,16,12,3,26,5,4,25,13}
Returns: 25.813953488372093
{4,1,2,3}
Returns: 1.5
{20,5,16,14,9,8,32,24,6,3,27,22,29,25,7,30,1,10,26,31,19,11,17,2,15,13,12,23,4,21,28,18}
Returns: 15.0
{26,16,4,10,31,36,17,5,12,8,2,29,7,35,22,14,23,11,20,25,28,13,33,3,9,18,19,34,15,27,32,24,21,30,6,1}
Returns: 16.38888888888889
{3,25,2,12,41,9,26,16,28,35,27,40,47,23,24,20,37,50,22,31,42,45,15,5,21,33,29,39,1,10,30,4,48,34,32,38,43,14,36,13,46,18,44,17,19,6,11,7,8,49}
Returns: 24.08
{5,1,9,8,11,4,12,6,2,13,7,3,10}
Returns: 5.230769230769231
{21,30,20,22,15,29,10,8,43,44,47,25,27,41,36,46,33,11,35,24,16,23,6,5,14,19,13,9,49,28,1,34,7,45,4,3,38,18,48,12,42,40,17,37,39,2,32,31,26}
Returns: 24.775510204081634
{24,14,9,4,18,6,21,11,25,12,16,13,15,19,3,22,17,8,27,7,5,20,26,2,23,10,1}
Returns: 13.703703703703704
{30,24,9,10,28,15,20,23,31,26,17,25,13,27,8,12,14,5,32,6,22,16,19,1,11,7,4,29,18,3,21,2}
Returns: 19.9375
{42,48,14,4,21,41,5,49,29,47,1,12,43,2,33,9,36,3,27,10,31,44,40,34,23,28,18,7,26,16,8,20,30,15,39,11,37,35,38,19,22,6,25,32,24,13,17,46,45}
Returns: 24.081632653061224
{1,3,5,4,2}
Returns: 1.6
{23,26,27,21,15,43,10,29,3,32,42,40,34,22,19,25,5,31,2,38,36,18,28,44,14,12,20,13,24,30,35,11,17,8,39,33,1,6,7,41,4,16,9,37}
Returns: 24.5
{6,9,5,7,4,13,12,8,21,22,10,17,23,11,1,18,16,24,14,2,19,15,25,20,3}
Returns: 8.72
{16,17,5,12,23,24,9,2,14,15,19,8,13,1,22,3,4,20,7,10,21,11,18,6}
Returns: 12.416666666666666
{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}
Returns: 0.0
{1,2,3,4,5,6,7,8,9,10,11}
Returns: 0.0
{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,49}
Returns: 0.0
{16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1}
Returns: 15.0
{33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1}
Returns: 32.0
{49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1}
Returns: 48.0
{10,11,1,3,8,9,7,2,6,4,5,13,22,30,29,15,26,20,27,28,14,12,21,18,19,16,23,24,25,17,31,32,34,33,35,45,37,39,38,36,40,44,43,42,41,47,46,48,49,50}
Returns: 5.92
{19,28,12,23,20,8,14,13,38,10,35,27,1,4,6,21,7,37,36,26,16,2,24,31,17,5,25,22,30,15,34,33,3,11,9,18,32,29,41,43,40,42,39,44}
Returns: 15.545454545454545
{12,6,35,19,29,22,14,8,34,31,24,4,9,25,27,13,15,20,26,17,28,5,7,10,2,30,33,3,23,11,18,1,36,16,32,21,37}
Returns: 17.405405405405407
{22,17,5,7,3,1,12,15,9,6,13,20,14,11,10,8,4,18,21,19,16,2,23,27,35,33,30,36,24,34,45,44,32,39,46,25,28,40,37,26,41,31,38,29,43,42,47,49,48}
Returns: 8.693877551020408
{1,2,4,3,5,6}
Returns: 0.3333333333333333
{12,19,24,15,18,9,4,17,23,22,13,1,8,20,3,14,5,11,7,2,6,16,21,10,26,28,27,25,32,35,31,29,34,33,30,40,36,38,37,43,42,39,41}
Returns: 9.069767441860465
{1,17,6,41,39,4,24,35,12,16,29,42,40,21,9,25,8,32,37,19,27,28,30,2,31,47,33,45,34,23,7,11,13,38,18,44,10,14,20,22,3,26,5,36,43,46,15,48,49,50}
Returns: 20.32
{19,6,1,15,14,3,16,22,7,21,8,10,12,18,20,4,11,17,2,5,9,13,23,24,28,27,25,26,29}
Returns: 8.620689655172415
{1,12,11,5,10,8,9,7,4,2,6,3,15,13,16,14,17,19,18,20,21}
Returns: 4.761904761904762
{16,27,5,19,11,2,14,28,12,21,10,18,29,7,9,17,13,4,20,6,26,24,8,25,23,15,1,22,3,31,47,30,43,36,48,46,42,45,40,33,44,41,38,37,35,34,39,32,49}
Returns: 13.061224489795919
{11,2,4,1,10,15,3,13,12,14,9,8,6,5,7,18,30,22,33,34,17,19,24,16,25,35,32,26,28,31,27,29,23,21,20,36,37}
Returns: 7.945945945945946
{19,12,24,23,22,15,1,13,25,21,17,9,10,7,4,11,6,14,20,3,18,8,16,5,2,26,32,30,27,31,28,29,33,34,37,36,35,38}
Returns: 11.421052631578947
{11,15,28,2,21,25,24,12,23,19,20,27,14,4,7,22,26,17,18,10,3,9,5,1,13,6,8,16,33,31,30,32,29,34,35,36,37,39,38,42,40,43,41,45,44,48,50,46,47,49}
Returns: 10.52
{1,5,7,9,8,3,4,6,2,10,12,11,13,14}
Returns: 2.857142857142857
{14,9,15,7,12,13,4,8,1,2,6,10,5,11,3,16,17,18,20,36,35,25,38,34,41,29,26,19,23,28,21,32,40,27,37,22,33,24,31,30,39,42,43,44,45,48,47,46,49}
Returns: 8.081632653061224
{1,2,4,3,5,6,7,8,9,11,10,12,22,20,14,18,19,23,16,15,21,13,24,17,26,29,28,27,25,31,30,32,33,34,39,36,38,37,35,40,41,44,42,43,45,46,48,47,49}
Returns: 2.326530612244898
{1,4,3,6,8,9,5,7,2,10,11,14,12,13,15,16,17,18}
Returns: 1.6666666666666667
{1,2,3,6,5,4,7,9,8,10,17,16,12,11,14,13,15,18}
Returns: 1.8888888888888888
{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,25,24,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50}
Returns: 0.04
{2,3,1,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,36,35,37,38,39,40,41,42,43,44,45,49,47,48,46}
Returns: 0.32653061224489793