Skip to content

Commit e3a040b

Browse files
committed
improve readability
1 parent 6ce425e commit e3a040b

File tree

4 files changed

+27
-37
lines changed

4 files changed

+27
-37
lines changed

src/Advanced.Algorithms/Advanced.Algorithms.csproj

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4-
<TargetFrameworks>net45;netstandard1.0</TargetFrameworks>
4+
<TargetFrameworks>net461;netstandard1.0</TargetFrameworks>
55
<RootNamespace>Advanced.Algorithms</RootNamespace>
66
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
77
<SignAssembly>True</SignAssembly>

src/Advanced.Algorithms/DataStructures/Heap/BHeap.cs

+15-21
Original file line numberDiff line numberDiff line change
@@ -79,32 +79,26 @@ private void bulkInit(T[] initial)
7979

8080
private void bulkInitRecursive(int i, T[] initial)
8181
{
82-
while (true)
83-
{
84-
var parent = i;
85-
86-
var left = 2 * i + 1;
87-
var right = 2 * i + 2;
88-
89-
var minMax = left < initial.Length && right < initial.Length ?
90-
comparer.Compare(initial[left], initial[right]) < 0 ? left : right
91-
: left < initial.Length ? left
92-
: right < initial.Length ? right : -1;
82+
var parent = i;
9383

94-
if (minMax != -1 && comparer.Compare(initial[minMax], initial[parent]) < 0)
95-
{
96-
var temp = initial[minMax];
97-
initial[minMax] = initial[parent];
98-
initial[parent] = temp;
84+
var left = 2 * i + 1;
85+
var right = 2 * i + 2;
9986

100-
//drill down to child
101-
i = minMax;
102-
continue;
103-
}
87+
var minMax = left < initial.Length && right < initial.Length ?
88+
comparer.Compare(initial[left], initial[right]) < 0 ? left : right
89+
: left < initial.Length ? left
90+
: right < initial.Length ? right : -1;
10491

92+
if (minMax != -1 && comparer.Compare(initial[minMax], initial[parent]) < 0)
93+
{
94+
var temp = initial[minMax];
95+
initial[minMax] = initial[parent];
96+
initial[parent] = temp;
10597

106-
break;
98+
//if min is child then drill down child
99+
bulkInitRecursive(minMax, initial);
107100
}
101+
108102
}
109103

110104
/// <summary>

src/Advanced.Algorithms/DataStructures/Heap/d-aryHeap.cs

+9-14
Original file line numberDiff line numberDiff line change
@@ -78,23 +78,18 @@ private void bulkInit(T[] initial)
7878
/// </summary>
7979
private void bulkInitRecursive(int i, T[] initial)
8080
{
81-
while (true)
82-
{
83-
var parent = i;
84-
var minMax = findMinMaxChildIndex(i, initial);
85-
86-
if (minMax != -1 && comparer.Compare(initial[minMax], initial[parent]) < 0)
87-
{
88-
var temp = initial[minMax];
89-
initial[minMax] = initial[parent];
90-
initial[parent] = temp;
81+
var parent = i;
82+
var minMax = findMinMaxChildIndex(i, initial);
9183

92-
i = minMax;
93-
continue;
94-
}
84+
if (minMax != -1 && comparer.Compare(initial[minMax], initial[parent]) < 0)
85+
{
86+
var temp = initial[minMax];
87+
initial[minMax] = initial[parent];
88+
initial[parent] = temp;
9589

96-
break;
90+
bulkInitRecursive(minMax, initial);
9791
}
92+
9893
}
9994

10095

tests/Advanced.Algorithms.Tests/Advanced.Algorithms.Tests.csproj

+2-1
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,15 @@
88
<AppDesignerFolder>Properties</AppDesignerFolder>
99
<RootNamespace>Advanced.Algorithms.Tests</RootNamespace>
1010
<AssemblyName>Advanced.Algorithms.Tests</AssemblyName>
11-
<TargetFrameworkVersion>v4.5.1</TargetFrameworkVersion>
11+
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
1212
<FileAlignment>512</FileAlignment>
1313
<ProjectTypeGuids>{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
1414
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
1515
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
1616
<ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\$(VisualStudioVersion)\UITestExtensionPackages</ReferencePath>
1717
<IsCodedUITest>False</IsCodedUITest>
1818
<TestProjectType>UnitTest</TestProjectType>
19+
<TargetFrameworkProfile />
1920
</PropertyGroup>
2021
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
2122
<DebugSymbols>true</DebugSymbols>

0 commit comments

Comments
 (0)