public void QuickSelectTest() { var r = new Random(); float[] d = Enumerable.Range(0, 100).Select(i => (float)r.NextDouble()).ToArray(); var dSorted = new List <float>(d); dSorted.Sort(); int[] indices = Enumerable.Range(0, d.Length).ToArray(); int n = 30; QuickSelect.Select(indices, 0, d.Length - 1, n, i => d[i]); var selectedD = indices.Select(i => d[i]).ToArray(); for (int i = 0; i < n; i++) { Assert.IsTrue(selectedD[i] < selectedD[n]); } float limit = d[indices[n]]; Assert.AreEqual(30, d.Count(x => x < limit)); }
public void SelectWithComparerTest_KGreaterOrEqualThanN() { Point[] points = new Point[10]; for (int i = 0; i < 10; i++) { points[i] = new Point(i, 10 - i); } QuickSelect.Select(points, Point.X_ORDER, 10); }
public void SelectWithComparerTest_KLessThan0() { Point[] points = new Point[10]; for (int i = 0; i < 10; i++) { points[i] = new Point(i, 10 - i); } QuickSelect.Select(points, Point.X_ORDER, -1); }
public void testSelectK() { var a = new[] { 1, 3, 5, 2, 4, 6, 0 }; Assert.Equal(3, QuickSelect.Select(a, 3, (a1, b) => a1 - b)); }
public void SelectWithComparerTest_NullComparer() { Point[] points = new Point[10]; for (int i = 0; i < 10; i++) { points[i] = new Point(i, 10 - i); } QuickSelect.Select(points, null, 1); }
public void SelectTest() { String[] a = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9" }; Shuffle.Do(a); String v = QuickSelect.Select(a, 3) as String; Assert.IsNotNull(v); Assert.AreEqual("3", v); for (int i = 0; i < 3; i++) { Assert.IsTrue(SortHelper.Less(a[i], v)); } Assert.AreEqual(a[3], v); }
public void SelectWithComparerTest() { Point[] points = new Point[10]; for (int i = 0; i < 10; i++) { points[i] = new Point(i, 10 - i); } Shuffle.Do(points); Point v = QuickSelect.Select(points, Point.X_ORDER, 3) as Point; Assert.IsNotNull(v); Assert.AreEqual(3, v.X); Assert.AreEqual(7, v.Y); for (int i = 0; i < 3; i++) { Assert.IsTrue(SortHelper.Less(Point.X_ORDER, points[i], v)); } Assert.AreEqual(points[3], v); }
public int FindKthLargest(int[] nums, int k) { return(QuickSelect.Select(nums, 0, nums.Length - 1, nums.Length - k + 1)); }
public void SelectWithComparerTest_NullArray() { QuickSelect.Select(null, Point.X_ORDER, 1); }
public void SelectTest_KGreaterOrEqualThanN() { String[] a = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9" }; QuickSelect.Select(a, 10); }
public void SelectTest_KLessThan0() { String[] a = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9" }; QuickSelect.Select(a, -1); }
public void SelectTest_NullArray() { QuickSelect.Select(null, 1); }