Skip to content

Commit e510d01

Browse files
committed
3.2.40 Finished
1 parent cb23993 commit e510d01

File tree

3 files changed

+81
-1
lines changed

3 files changed

+81
-1
lines changed
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<Project Sdk="Microsoft.NET.Sdk">
2+
3+
<PropertyGroup>
4+
<OutputType>Exe</OutputType>
5+
<TargetFramework>netcoreapp3.0</TargetFramework>
6+
<RootNamespace>_3._2._40</RootNamespace>
7+
</PropertyGroup>
8+
9+
<ItemGroup>
10+
<ProjectReference Include="..\BinarySearchTree\BinarySearchTree.csproj" />
11+
</ItemGroup>
12+
13+
</Project>

3 Searching/3.2/3.2.40/Program.cs

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
using System;
2+
using BinarySearchTree;
3+
4+
namespace _3._2._40
5+
{
6+
class Program
7+
{
8+
static void Main(string[] args)
9+
{
10+
var n = 10000;
11+
var trials = 100;
12+
13+
for (var i = 0; i < 3; i++)
14+
{
15+
var items = new int[n];
16+
17+
for (var j = 0; j < n; j++)
18+
{
19+
items[j] = j;
20+
}
21+
22+
var aveHeight = 0d;
23+
for (var j = 0; j < trials; j++)
24+
{
25+
var bst = new BST<int, int>();
26+
Shuffle(items);
27+
foreach (var item in items)
28+
{
29+
bst.Put(item, item);
30+
}
31+
32+
aveHeight += bst.Height();
33+
}
34+
35+
aveHeight /= trials;
36+
var c = 4.31107d;
37+
var expectHeightLuc = c * Math.Log(n);
38+
var expectHeightMichael = c * Math.Log(n) - (3 * c / (2 * (c - 1))) * Math.Log(Math.Log(n));
39+
Console.WriteLine("n:" + n);
40+
Console.WriteLine("Actual Height:" + aveHeight);
41+
Console.WriteLine("Devroye: " + expectHeightLuc + "\tDiff: " + (float)(expectHeightLuc - aveHeight));
42+
Console.WriteLine("Michael: " + expectHeightMichael + "\tDiff: " + (float)(expectHeightMichael - aveHeight));
43+
44+
n *= 10;
45+
}
46+
}
47+
48+
static void Shuffle<T>(T[] a)
49+
{
50+
var random = new Random();
51+
for (var i = 0; i < a.Length; i++)
52+
{
53+
var r = i + random.Next(a.Length - i);
54+
var temp = a[i];
55+
a[i] = a[r];
56+
a[r] = temp;
57+
}
58+
}
59+
}
60+
}

Algorithms 4th Edition.sln

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1031,7 +1031,9 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "3.2.37", "3 Searching\3.2\3
10311031
EndProject
10321032
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "3.2.38", "3 Searching\3.2\3.2.38\3.2.38.csproj", "{8748C5C0-0443-4E73-A40B-B2149FC7A03F}"
10331033
EndProject
1034-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "3.2.39", "3 Searching\3.2\3.2.39\3.2.39.csproj", "{2428EF52-8CE9-48F9-95DD-707B1E5F8DF5}"
1034+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "3.2.39", "3 Searching\3.2\3.2.39\3.2.39.csproj", "{2428EF52-8CE9-48F9-95DD-707B1E5F8DF5}"
1035+
EndProject
1036+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "3.2.40", "3 Searching\3.2\3.2.40\3.2.40.csproj", "{28E56928-AA66-464E-B791-A72889D4C624}"
10351037
EndProject
10361038
Global
10371039
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -2835,6 +2837,10 @@ Global
28352837
{2428EF52-8CE9-48F9-95DD-707B1E5F8DF5}.Debug|Any CPU.Build.0 = Debug|Any CPU
28362838
{2428EF52-8CE9-48F9-95DD-707B1E5F8DF5}.Release|Any CPU.ActiveCfg = Release|Any CPU
28372839
{2428EF52-8CE9-48F9-95DD-707B1E5F8DF5}.Release|Any CPU.Build.0 = Release|Any CPU
2840+
{28E56928-AA66-464E-B791-A72889D4C624}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
2841+
{28E56928-AA66-464E-B791-A72889D4C624}.Debug|Any CPU.Build.0 = Debug|Any CPU
2842+
{28E56928-AA66-464E-B791-A72889D4C624}.Release|Any CPU.ActiveCfg = Release|Any CPU
2843+
{28E56928-AA66-464E-B791-A72889D4C624}.Release|Any CPU.Build.0 = Release|Any CPU
28382844
EndGlobalSection
28392845
GlobalSection(SolutionProperties) = preSolution
28402846
HideSolutionNode = FALSE
@@ -3347,6 +3353,7 @@ Global
33473353
{919A1928-E309-4F31-97C5-AAEAE7F9E546} = {136F3860-08E9-4C37-BC04-679085D442B4}
33483354
{8748C5C0-0443-4E73-A40B-B2149FC7A03F} = {136F3860-08E9-4C37-BC04-679085D442B4}
33493355
{2428EF52-8CE9-48F9-95DD-707B1E5F8DF5} = {69512490-D514-490D-9088-D514FC5C770A}
3356+
{28E56928-AA66-464E-B791-A72889D4C624} = {69512490-D514-490D-9088-D514FC5C770A}
33503357
EndGlobalSection
33513358
GlobalSection(ExtensibilityGlobals) = postSolution
33523359
SolutionGuid = {EE55CF8D-6F35-464D-B95B-ED85644AE41C}

0 commit comments

Comments
 (0)