Averages/Median: Difference between revisions

Content added Content deleted
(Added Wren)
Line 3,511: Line 3,511:
}</lang>
}</lang>
Returns: <pre>[2 3 2 3]</pre>
Returns: <pre>[2 3 2 3]</pre>

=={{header|Wren}}==
{{libheader|Wren-sort}}
{{libheader|Wren-math}}
{{libheader|Wren-queue}}
<lang ecmascript>import "/sort" for Sort, Find
import "/math" for Nums
import "/queue" for PriorityQueue

var lists = [
[5, 3, 4],
[3, 4, 1, -8.4, 7.2, 4, 1, 1.2]
]

for (l in lists) {
// sort and then find median
var l2 = Sort.merge(l)
System.print(Nums.median(l2))

// using a priority queue
var pq = PriorityQueue.new()
for (e in l) pq.push(e, -e)
var c = pq.count
var v = pq.values
var m = (c % 2 == 1) ? v[(c/2).floor] : (v[c/2] + v[c/2-1])/2
System.print(m)

// using quickselect
if (c % 2 == 1) {
System.print(Find.quick(l, (c/2).floor))
} else {
var m1 = Find.quick(l, c/2-1)
var m2 = Find.quick(l, c/2)
System.print((m1 + m2)/2)
}
System.print()
}</lang>

{{out}}
<pre>
4
4
4

2.1
2.1
2.1
</pre>


=={{header|Yabasic}}==
=={{header|Yabasic}}==