/
dsa.html
371 lines (317 loc) · 14.8 KB
/
dsa.html
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
<!DOCTYPE html>
<html>
<head>
<title> Data Structures and Algorithms </title>
<!--<link rel="stylesheet" type="text/css" href="/../Data_Structures_and_Algorithms/css/dsa.css" charset="utf-8">-->
<link rel="stylesheet" type="text/css" href="https://github.com/techGIAN/Data_Structures_and_Algorithms/css/dsa.css" charset="utf-8">
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Montserrat:bold">
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Raleway:light">
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.0.10/css/all.css" integrity="sha384-+d0P83n9kaQMCwj8F4RJB66tzIwOKmrdb46+porD/OvrJ+37WqIM7UoBtwHO6Nlg" crossorigin="anonymous">
<link href="css/logoiconfont.css" rel="stylesheet">
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
</head>
<body onload="onload();" data-spy="scroll" data-target=".navbar" data-offset="50">
<div id="loader"></div>
<div style="display:none;" id="myDiv" class="animate-bottom">
<div>
<header>
<nav class="navbar navbar-inverse navbar-fixed-top">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" id="gca" href="http://ggalix.com">GIAN CARLO ALIX</a>
</div>
<div id="navbar" class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<!--<li class="active"><a href="#">Home</a></li>-->
<!--<li><a href="dsa.html">Home</a></li>-->
</ul>
<ul class="nav navbar-nav navbar-right">
<li><a href="dsa.html">Home</a></li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Data Structures <span class="caret"></span></a>
<ul class="dropdown-menu">
<li><a href="data_structures/arrays.html">Arrays</a></li>
<li><a href="data_structures/stacks.html">Stacks</a></li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Algorithms <span class="caret"></span></a>
<ul class="dropdown-menu">
<li><a href="algorithms/loopInvariants.html">Loop Invariants</a></li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Foundational Concepts <span class="caret"></span></a>
<ul class="dropdown-menu">
<li><a href="foundational/recursion.html">Recursion</a></li>
</ul>
</li>
<!--<li class="active"><a href="./">Fixed top <span class="sr-only">(current)</span></a></li>-->
</ul>
</div><!--/.nav-collapse -->
</div>
</nav>
</header>
<section id="intro" class="background1 section-padding">
<div class="container">
<h2 id="colorChangeRed"> Data Structures and Algorithms </h2>
<br>
Hello World! And welcome to my page of <b>Data Structures and Algorithms</b>. Just to let you know of some disclaimers. See at the bottom of the page for the disclaimer (or click <a href="#disclaimer">here</a>).
<br><br>
So in this course (in my first university-this was just one course but for my second university-this was separated into two courses taken one after the other), you will be learning two major disciplines. The first area, being <b><i>Data Structures</i></b>, deals with the fundamentals of the use of data structures in computer science. You will see different structures such as linear structures (arrays, lists, stacks, queues, trees, graphs, hash tables, heaps, and maps. Each one of these data structure has its own implementation and you will be studying the best implemenation of each data structure. These structures also have their own operations and methods which we can use to utilize these structures. And depending on what we want to do, there might be a better implementation or a better data structure that we can use - to which all is based on time complexity. This will be covered (should be covered beforehand during the fundamentals). You will also be trained to write simple algorithms and pseudocodes (more on this on the fundamentals) as early as Data Structures is concerned in order to utilize these structures.
<br>
<br>
<b><i>Algorithms</i></b>, on the other hand, takes Data Structures one step further and extends on these "simple algorithms". By the end of that course, you should be able to write more complex algorithms. We will take a look into searching, sorting, selection, tree and graph algorithms, design techniques and NP-Completeness.
<br>
<br>
The third part (unofficially) is the <b><i>Foundational Concepts</i></b>, where you may want to visit and take a look at these pages first before diving in to the juicy stuff. Make sure you know and understand these concepts well before going to the fun stuff. If you're already knowledgable on those concepts, feel free to skip ahead. If not, a brief review wouldn't hurt.
<br>
<br>
I also have a list of some resources that I find really helpful for me to understand the concepts. These resources proved to be really helpful and that's why I am including them in. Furthermore, all references/credit/media that I will be including in my notes that does not belong to me shall be credited and cited properly through the references section.
<br>
<br>
Again, thank you so much for reading up until this point and for visiting the page. There are still a lot of "under construction" pages so please bear with me until I get all the pages up. Please see below of the list of topics I would be covering. If you have any questions, use the box below. Thanks!
<br>
<br>
All the best with your <span class="und">studies!</span>
<br>
<br>
<b>G.C.A.</b>
<br>
<br>
<!--
Sample Code
<br><br>
<pre>
public static void main (String[] args) {
System.out.println("Hello World");
}
</pre>
Output: <samp>Hello World</samp>-->
</div>
</section>
<section id="ds" class="background1 section-padding">
<div class="container">
<h4 id="colorChangeRed">Data Structures</h4>
<hr align="left" width="400px" class="hrContact">
<div class="row">
<div class="col-sm-2">
<ul>
<li><a href="data_structures/arrays.html">Arrays</a></li>
<li>Array Lists</li>
<li>Linked Lists</li>
<li><a href="data_structures/stacks.html">Stacks</a></li>
<li>Queues</li>
</ul>
</div>
<div class="col-sm-2">
<ul>
<li>Trees</li>
<li>Heaps</li>
<li>Priority Queues</li>
<li>Maps</li>
</ul>
</div>
<div class="col-sm-2">
<ul>
<li>Hash Tables</li>
<li>Binary Search Trees</li>
<li>AVL Trees</li>
<li>Splay Trees</li>
<li>Graphs</li>
</ul>
</div>
<div class="col-sm-6"></div>
</div>
</div>
</section>
<section id="algo" class="background1 section-padding">
<div class="container">
<h4 id="colorChangeRed">Algorithms</h4>
<hr align="left" width="400px" class="hrContact">
<div class="row">
<div class="col-sm-2">
<ul>
<li><a href="algorithms/loopInvariants.html">Loop Invariants</a></li>
<li>Strong Induction</li>
<li>Searching</li>
<li>Sorting</li>
<li>Selection</li>
</ul>
</div>
<div class="col-sm-2">
<ul>
<li>Tree Algorithms</li>
<li>Graph Algorithms</li>
<li>Design Techniques</li>
<li>NP-Complete</li>
</ul>
</div>
<div class="col-sm-8"></div>
</div>
</div>
</section>
<section id="fc" class="background1 section-padding">
<div class="container">
<h4 id="colorChangeRed">Foundational Concepts</h4>
<hr align="left" width="400px" class="hrContact">
<div class="row">
<div class="col-sm-3">
<ul>
<li>Java Primer/Collections</li>
<li>Logic</li>
<li>Time Complexity/Asymptotic Analysis</li>
<li>Mathematical Induction</li>
</ul>
</div>
<div class="col-sm-3">
<ul>
<li>Recurrence Relations</li>
<li><a href="foundational/recursion.html">Recursion</a></li>
<li>Summation</li>
<li>Pseudocode Writing</li>
</ul>
</div>
<div class="col-sm-6"></div>
</div>
</div>
</section>
<section id="res" class="background1 section-padding">
<div class="container">
<h4 id="colorChangeRed">Resources</h4>
<hr align="left" width="400px" class="hrContact">
<div class="row">
<div class="col-sm-3">
<ul>
<li>Textbooks</li>
<li>Links</li>
</ul>
</div>
<div class="col-sm-9"></div>
</div>
</div>
</section>
<section id="ref" class="background1 section-padding">
<div class="container">
<h4 id="colorChangeRed">References</h4>
<hr align="left" width="400px" class="hrContact">
<i>Under construction!</i>
<br>
<br>
</div>
</section>
<section id="disclaimer" class="background1 section-padding">
<div class="container">
<h4 id="colorChangeRed">Disclaimer</h4>
<hr align="left" width="400px" class="hrContact">
Please note and read this disclaimer carefully. Firstly, I am only a student and not a professional expert. I have only created, kept and maintained this site so I could upload my notes and seek some insights and reflections on what I have learned. If you are seeking for serious help, then this is not the right place to go. I have also added some links and resources in my page, which directs you to the more "proper" place for seeking help and information.
<br>
<br>
Secondly, I tend to use words such as <i>I think...</i>, <i>It seems like...</i>, and even <i>In my opinion...</i>. This is because as a student, although I know most things, I don't know all of them. Because again, I am not an expert that you should be consulting. Yes I am to share my knowledge and intuition, but that is it. A professor is able to explain these concepts in more formal detail, but I can only go until intuition that can perhaps help you, to the very least.
<br>
<br>
As a peer tutor, I am not expected to teach in great depth of details nor will I ever be able to (well, unless I go to gradschool and become a professor someday; which I still aim for). So I guess credibility-wise, I wouldn't say that this is the perfect resource for it. But if you want intuition or an easy-to-follow resource that can explain it to you like you're five, then this would be it.
<br>
<br>
The reason why I made this site is again to store all my notes. I am still on my journey to learning Data Structures and Algorithms, so I guess you could say that this is somewhat like a blog/journal for me too. Also, I would have uploaded my notes to a cloud drive or through GitHub, but I decided to create a page instead - since I am also on the process of learning and wanting to be a web developer.
<br>
<br>
</div>
</section>
<section id="message" class="background1 section-padding">
<div class="container">
<h4 id="colorChangeRed">Leave a Message</h4>
<hr align="left" width="400px" class="hrContact">
There is no perfect world, nor is there a perfect human. Hence all of us tend to make mistakes. I admit myself that I may have made unintentional mistakes. So whenever you spot one in my page, whether it's a typo, a broken link or an idea that I got wrong, please please please let me know and allow me to fix right away. Included down below is a box where you can comment down any mistake I have made. Also, if you have any questions - don't hesitate to ask! Also use the box below.
<br>
<br>
<form id="contactForm" name="contactform" method="post" action="https://ggalixcom.000webhostapp.com/form-to-email-dsa.php">
<div class="form-group">
<label for="usr">Name:</label>
<input type="text" class="form-control" name="usr">
</div>
<div class="form-group">
<label for="email">Email:</label>
<input type="email" class="form-control" name="email">
</div>
<div class="form-group">
<label for="comment">Message:</label>
<textarea class="form-control" rows="5" name="comment"></textarea>
</div>
<div class="left" class="col-sm-10">
<button id="butSubmit" type="submit" class="btn btn-primary" name="submit">Submit</button>
</div>
</form>
<br>
<br>
</div>
</section>
<footer class="background2 footer-padding">
<div class="container">
<div class="row">
<div class="col-sm-8 col-sm-offset-2 text-small text-center">
<hr>
<button id="buttonFooter" type="button" class="btn btn-primary btn-up-footer btn-lg round scroll-top">TOP</button>
<p id="foot" class="no-margin">Data Structures and Algorithms | GIAN CARLO ALIX | Last updated: September 2, 2018</p>
</div><!-- /.column -->
</div><!-- /.row -->
</div><!-- /.container -->
</footer>
</div>
<div>
<script>
//use this to reset forms onload
$('#contactForm')[0].reset();
$(document).ready(function(){
$('body').scrollspy({target: ".navbar", offset: 50});
$("#navbar a").on('click', function(event) {
if (this.hash !== "") {
event.preventDefault();
var hash = this.hash;
$('html, body').animate({
scrollTop: $(hash).offset().top
}, 800, function(){
window.location.hash = hash;
});
} // End if
});
});
/* ---- nav smooth scroll ---- */
$(document).ready(function() {
$('.scroll-link').on('click', function(event){
event.preventDefault();
var sectionID = $(this).attr("data-id");
scrollToID('#' + sectionID, 750);
});
$('.scroll-top').on('click', function(event) {
event.preventDefault();
$('html, body').animate({scrollTop:0}, 1200);
});
});
/* ---- navbar offset ---- */
function scrollToID(id, speed){
var offSet = 69;
var targetOffset = $(id).offset().top - offSet;
$('html,body').animate({scrollTop:targetOffset}, speed);
}
var myVar;
function onload() {
myVar = setTimeout(showPage, 1500);
}
function showPage() {
document.getElementById("loader").style.display = "none";
document.getElementById("myDiv").style.display = "block";
}
</script>
</body>
</html>