<?xml version="1.0" encoding="UTF-8" standalone="no"?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:gd="http://schemas.google.com/g/2005" xmlns:georss="http://www.georss.org/georss" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:thr="http://purl.org/syndication/thread/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-2768273740072947120</atom:id><lastBuildDate>Mon, 01 Jun 2026 18:26:12 +0000</lastBuildDate><title>Note For IT</title><description></description><link>http://note-for-it.blogspot.com/</link><managingEditor>noreply@blogger.com (Han)</managingEditor><generator>Blogger</generator><openSearch:totalResults>27</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><language>en-us</language><itunes:explicit>no</itunes:explicit><itunes:subtitle/><itunes:owner><itunes:email>noreply@blogger.com</itunes:email></itunes:owner><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2768273740072947120.post-3883621887923094732</guid><pubDate>Sat, 29 Aug 2009 10:18:00 +0000</pubDate><atom:updated>2009-08-29T03:21:49.698-07:00</atom:updated><title>Rolling a Six-Sided Die 6000 Times (Java Coding)</title><description>&lt;div&gt;import java.util.Random;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;public class RollDie {&lt;/div&gt;&lt;div&gt;        &lt;/div&gt;&lt;div&gt;    public static void main(String[] args) {&lt;/div&gt;&lt;div&gt;    &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;Random randomNumbers = new Random();&lt;/div&gt;&lt;div&gt;    &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;    &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;int freq1 = 0;&lt;/div&gt;&lt;div&gt;    &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;int freq2 = 0;&lt;/div&gt;&lt;div&gt;    &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;int freq3 = 0;&lt;/div&gt;&lt;div&gt;    &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;int freq4 = 0;&lt;/div&gt;&lt;div&gt;    &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;int freq5 = 0;&lt;/div&gt;&lt;div&gt;    &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;int freq6 = 0;&lt;/div&gt;&lt;div&gt;    &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;    &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;int face;&lt;/div&gt;&lt;div&gt;    &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;    &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;for(int roll=1; roll&lt;=6000; roll++)&lt;/div&gt;&lt;div&gt;    &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;{&lt;/div&gt;&lt;div&gt;    &lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;face = 1 + randomNumbers.nextInt(6);&lt;/div&gt;&lt;div&gt;    &lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div&gt;    &lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;switch(face)&lt;/div&gt;&lt;div&gt;    &lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;{&lt;/div&gt;&lt;div&gt;    &lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;case 1:&lt;/div&gt;&lt;div&gt;    &lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;++freq1;&lt;/div&gt;&lt;div&gt;    &lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;break;&lt;/div&gt;&lt;div&gt;    &lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;case 2:&lt;/div&gt;&lt;div&gt;    &lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;++freq2;&lt;/div&gt;&lt;div&gt;    &lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;break;&lt;/div&gt;&lt;div&gt;    &lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;case 3:&lt;/div&gt;&lt;div&gt;    &lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;++freq3;&lt;/div&gt;&lt;div&gt;    &lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;break;&lt;/div&gt;&lt;div&gt;    &lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;case 4:&lt;/div&gt;&lt;div&gt;    &lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;++freq4;&lt;/div&gt;&lt;div&gt;    &lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;break;&lt;/div&gt;&lt;div&gt;    &lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;case 5:&lt;/div&gt;&lt;div&gt;    &lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;++freq5;&lt;/div&gt;&lt;div&gt;    &lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;break;&lt;/div&gt;&lt;div&gt;    &lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;case 6:&lt;/div&gt;&lt;div&gt;    &lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;++freq6;&lt;/div&gt;&lt;div&gt;    &lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;break;&lt;/div&gt;&lt;div&gt;    &lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;    &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;    &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;    &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;System.out.println("Face\tFrequency" );&lt;/div&gt;&lt;div&gt;    &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;System.out.printf("1\t%d\n2\t%d\n3\t%d\n4\t%d\n5\t%d\n6\t%d\n",&lt;/div&gt;&lt;div&gt;    &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;freq1, freq2, freq3, freq4, freq5, freq6);&lt;/div&gt;&lt;div&gt;    }&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;</description><link>http://note-for-it.blogspot.com/2009/08/rolling-six-sided-die-6000-times-java.html</link><author>noreply@blogger.com (Han)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2768273740072947120.post-7087257742064369794</guid><pubDate>Sat, 16 May 2009 13:45:00 +0000</pubDate><atom:updated>2009-05-16T07:00:12.471-07:00</atom:updated><title>Algorithms &amp; Data Structures - Searching</title><description>&lt;span style="font-weight:bold;"&gt;Searching&lt;/span&gt;&lt;br /&gt;√The process used to find the location of a target among the list of object.&lt;br /&gt;√We begin with list searching and a discussion of two basic search algorithm&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;List Searches&lt;/span&gt;&lt;br /&gt;√The two basic searches for arrays are the sequential search and the binary search.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Sequential Search&lt;/span&gt;&lt;br /&gt;√The sequencial search is used whenever the list is not ordered.&lt;br /&gt;√It is useful for small lists or lists that are not searched often.&lt;br /&gt;√In sequential search, we start searching for the target at the beginning of the list and continue until we find the target or we are sure that it is not in the list.&lt;br /&gt;√The efficiency of sequential search is O(n).&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFdC2PsAE9fv7mURdIuWjFNEqbQJ7d8rVhHvGxY8T1x7ZiItYlJJr8JogDoWuuyTXMU3kkeLPELgWLwuheopoHRX3wOet0fZlxGhSabgotCq1uAgLUQsKRfH1DzTPNvlFHmMnGhAYC7tM/s1600-h/1.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 223px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFdC2PsAE9fv7mURdIuWjFNEqbQJ7d8rVhHvGxY8T1x7ZiItYlJJr8JogDoWuuyTXMU3kkeLPELgWLwuheopoHRX3wOet0fZlxGhSabgotCq1uAgLUQsKRfH1DzTPNvlFHmMnGhAYC7tM/s400/1.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5336418489094406642" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgp4JWXhq1FYGswZpsAwEYvw85rFYASiDeAGKzXNndIueVItWhLQ_iCa51jyDJ5tmaXs-AwHJ2xCo7NzUGoeiZX4-4EowdnRevsGKgZILD7_LDzYkT7SV37Xap1XeDiX1OS7-vm1QVy9TM/s1600-h/2.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 275px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgp4JWXhq1FYGswZpsAwEYvw85rFYASiDeAGKzXNndIueVItWhLQ_iCa51jyDJ5tmaXs-AwHJ2xCo7NzUGoeiZX4-4EowdnRevsGKgZILD7_LDzYkT7SV37Xap1XeDiX1OS7-vm1QVy9TM/s400/2.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5336418484088086466" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGvyv_d6Y0FjQHtSAAGLAVIFWLW0vF1LcE1EFDQQCi6ZkalxQ75sQSBTWfTxvAbA7H7qgNU5Zp0pqr4de6DLf47DEBjV9bQqW2EQ7pLULsY2TvscgNSHTzNl-6Lrfa4Zjqn8RBqC8kVzQ/s1600-h/3.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 278px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGvyv_d6Y0FjQHtSAAGLAVIFWLW0vF1LcE1EFDQQCi6ZkalxQ75sQSBTWfTxvAbA7H7qgNU5Zp0pqr4de6DLf47DEBjV9bQqW2EQ7pLULsY2TvscgNSHTzNl-6Lrfa4Zjqn8RBqC8kVzQ/s400/3.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5336418481074095282" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxUfJnQHnxvchD2TPVyEo9a711_xkutE6XaDRVkFVSN5NNNcKwCxJxixtu3nFmYZJdmKdD2cTbdRbW4ZEKeQH-xpm8zFmM5Wahyl3D_VmTkVWDnZGMGirkkvxOUyJ7t8f39696gctVZ1g/s1600-h/4.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 265px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxUfJnQHnxvchD2TPVyEo9a711_xkutE6XaDRVkFVSN5NNNcKwCxJxixtu3nFmYZJdmKdD2cTbdRbW4ZEKeQH-xpm8zFmM5Wahyl3D_VmTkVWDnZGMGirkkvxOUyJ7t8f39696gctVZ1g/s400/4.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5336418481051499154" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Binary Search&lt;/span&gt;&lt;br /&gt;√The binary search starts by testing the data in the element at the middle of the array to determine if the target is in the first or the second half of the list.&lt;br /&gt;√If it is in the first half, we do not need to check the second half.&lt;br /&gt;√If it is in the second half, we do not need to check the first half.&lt;br /&gt;√To find the middle of the list, we need 3 variables: one to identify the beginning of the list, one to identify the middle of the list and one to identify the end of the list.&lt;br /&gt;√The formula to calculate the mid is:&lt;br /&gt;   &lt;span style="font-weight:bold;"&gt;Mid = [(begin + end ) / 2 ]&lt;/span&gt;&lt;br /&gt;√The efficiency of the binary search is O(log n).&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihyOBPwCh5g4tgmA4X4Wu1MVGc_6L4USdEnZ1BHiEWVBhmLv1Xrhd8XP99iHuypALjURHbIV3aFHvHD5ADWyyJ20_LL1xO4dP9qxxfEhw9kGxA9mOWheh__srHsQHaU___cjmJfWmDwCc/s1600-h/5.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 275px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihyOBPwCh5g4tgmA4X4Wu1MVGc_6L4USdEnZ1BHiEWVBhmLv1Xrhd8XP99iHuypALjURHbIV3aFHvHD5ADWyyJ20_LL1xO4dP9qxxfEhw9kGxA9mOWheh__srHsQHaU___cjmJfWmDwCc/s400/5.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5336419711894291458" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZpM9-oRrrGj_qlXpzHwHDi3dbk0tcll4dAgNOVOMzS6f9VmAVBSiwB4V-eDmQNPQEAg-JGUwRz_zUFFkTrFRxhus0uwv5-ArLUlFrnlZIZTpRoeWwzeX6wt6OaI2tZa13ynw4xrrVRCw/s1600-h/6.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 270px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZpM9-oRrrGj_qlXpzHwHDi3dbk0tcll4dAgNOVOMzS6f9VmAVBSiwB4V-eDmQNPQEAg-JGUwRz_zUFFkTrFRxhus0uwv5-ArLUlFrnlZIZTpRoeWwzeX6wt6OaI2tZa13ynw4xrrVRCw/s400/6.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5336420317978005810" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZioG7smeZs7kmRELHI-NSiXtZangph4y4NFXgJNN32ReS7BiXGeOJGc-DKoi6FoIS6gQIsfLiWj8sdmu_U4-R30UNahYwOcRbepCsCiGQXGsXCEQFAYHQo72GgVB-pHIWjVbN82CxCNE/s1600-h/7.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 260px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZioG7smeZs7kmRELHI-NSiXtZangph4y4NFXgJNN32ReS7BiXGeOJGc-DKoi6FoIS6gQIsfLiWj8sdmu_U4-R30UNahYwOcRbepCsCiGQXGsXCEQFAYHQo72GgVB-pHIWjVbN82CxCNE/s400/7.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5336420324243229442" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZqUJ4u8jTx8uaxwGlBooNo5mU2fB-HFPUMYMwtUBPe8kfjAoKe1U0VNxS_NdIHKvDubE5j1w41rxEQt1u4afzpjlaKweq4OIM9LfrqeiLZQHbFq6t-Qxau6A1NzqS0QuyKKs_Zq-TxMk/s1600-h/8.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 217px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZqUJ4u8jTx8uaxwGlBooNo5mU2fB-HFPUMYMwtUBPe8kfjAoKe1U0VNxS_NdIHKvDubE5j1w41rxEQt1u4afzpjlaKweq4OIM9LfrqeiLZQHbFq6t-Qxau6A1NzqS0QuyKKs_Zq-TxMk/s400/8.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5336420326662212738" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Binary Search Tree&lt;/span&gt;&lt;br /&gt;√The array structure provides a very efficient search algorithm, but its insertion and deletion algorithms are very inefficient.&lt;br /&gt;√The binary search tree and AVL tree (chapter 3)provides a very efficient search and at the same time efficient insertion and deletion algorithm.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Basic Concepts&lt;/span&gt;&lt;br /&gt;A binary search tree is a binary tree with the following properties:&lt;br /&gt;√All items in the left subtree are less than the root.&lt;br /&gt;√All items in the right subtree are greater than or equal to the root.&lt;br /&gt;√Each subtree is itself a binary search tree.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiu6Gi2F3_CRT3m9UZEugygISQf2yLEpd8SEEpRjP3zbsQte9mXtN6Cq87DXHbTD9mmY25-UulCqsT7pEjBK5uIMBcUE2_maqUfyCpX4_9JKFxlEYjANTao_gu7E7WAX623oxh1_8FY9Q4/s1600-h/9.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 118px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiu6Gi2F3_CRT3m9UZEugygISQf2yLEpd8SEEpRjP3zbsQte9mXtN6Cq87DXHbTD9mmY25-UulCqsT7pEjBK5uIMBcUE2_maqUfyCpX4_9JKFxlEYjANTao_gu7E7WAX623oxh1_8FY9Q4/s400/9.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5336421016678987986" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghk4JJ9d49UAx35p72LOJ4arzTMgBMcZazagkblzQhvc9kNncgB3IqqC-u8IWQ0GEQoLhapC6cc0K8A7Wt4oHoQF8Fulzvg5xBOXipJGdOSYq7CLyUDj2TVVRFmMLK-z3SwkhHztqz8PM/s1600-h/10.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 166px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghk4JJ9d49UAx35p72LOJ4arzTMgBMcZazagkblzQhvc9kNncgB3IqqC-u8IWQ0GEQoLhapC6cc0K8A7Wt4oHoQF8Fulzvg5xBOXipJGdOSYq7CLyUDj2TVVRFmMLK-z3SwkhHztqz8PM/s400/10.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5336421014938989058" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUEv7U9OoJ0tXalnLfARpDV0aI1Zedlvzfhb4HeGHY4KtJm1E9huXsBGt-k9nUVvoyDmDMYpl8Wz6MrOls2OFF9KJD3Y5Ucs8u4DlpoD69TFUDnXT8_w1geYxQsLnXWHAuDVRQZMU2eXA/s1600-h/11.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 174px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUEv7U9OoJ0tXalnLfARpDV0aI1Zedlvzfhb4HeGHY4KtJm1E9huXsBGt-k9nUVvoyDmDMYpl8Wz6MrOls2OFF9KJD3Y5Ucs8u4DlpoD69TFUDnXT8_w1geYxQsLnXWHAuDVRQZMU2eXA/s400/11.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5336421012157338930" /&gt;&lt;/a&gt;</description><link>http://note-for-it.blogspot.com/2009/05/algorithms-data-structures-searching.html</link><author>noreply@blogger.com (Han)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFdC2PsAE9fv7mURdIuWjFNEqbQJ7d8rVhHvGxY8T1x7ZiItYlJJr8JogDoWuuyTXMU3kkeLPELgWLwuheopoHRX3wOet0fZlxGhSabgotCq1uAgLUQsKRfH1DzTPNvlFHmMnGhAYC7tM/s72-c/1.png" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2768273740072947120.post-7099058419686129774</guid><pubDate>Sat, 16 May 2009 12:34:00 +0000</pubDate><atom:updated>2009-05-16T06:44:28.891-07:00</atom:updated><title>Algorithms &amp; Data Structures - Sorting</title><description>&lt;strong&gt;Objective:&lt;/strong&gt;&lt;br /&gt;At the end of the class you should be in a position to answer:&lt;br /&gt;√Understand the basic concepts of internal and external sorts&lt;br /&gt;√Discuss the relative efficiency of different sorts&lt;br /&gt;√Recognize and discuss selection, insertion and exchange sorts&lt;br /&gt;√Discuss the design and operation of external sorts&lt;br /&gt;√Design and implement sequential searches&lt;br /&gt;√Discuss the relative merits of different sequential searches&lt;br /&gt;√Design and implement binary searches&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Sort Concepts&lt;/strong&gt;&lt;br /&gt;√Sorts arrange data according to their value.&lt;br /&gt;√Sorting algorithm are classified as either internal or external.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmNU9ri25YLn8EGwpLuczCtNHaNUSBQT63gnIqWg2AcP8atK7n16Md5iFSpJp_V4bm5d96F7GpgFSoX3iylMRe56GOez7A9Oy6iuKXg0QAQbiw8mXRE_PBpFne08oEAEZM5mDpCIc1H9Q/s1600-h/1.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 251px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmNU9ri25YLn8EGwpLuczCtNHaNUSBQT63gnIqWg2AcP8atK7n16Md5iFSpJp_V4bm5d96F7GpgFSoX3iylMRe56GOez7A9Oy6iuKXg0QAQbiw8mXRE_PBpFne08oEAEZM5mDpCIc1H9Q/s400/1.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5336407125304982962" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Insertion Sorts&lt;/strong&gt;&lt;br /&gt;In each pass of an insertion sort, one or more pieces of data are inserted into their correct location in an ordered list. In this section we study two insertion sorts: the straight insertion sort and the shell sort.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqZzo-7Ah_q4bKbzLBZHl-aTtFItd6UrYi6kfFj-h2ls90zaTqsVzDUws4dZXvMvrm5j6QBjlUgK7nVVwmKtFJjuEx_lUFQoDCRv23aXfZ65h0Sl966hwhMFyXs77BwEyk1I2L8-vd7PQ/s1600-h/2.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 179px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqZzo-7Ah_q4bKbzLBZHl-aTtFItd6UrYi6kfFj-h2ls90zaTqsVzDUws4dZXvMvrm5j6QBjlUgK7nVVwmKtFJjuEx_lUFQoDCRv23aXfZ65h0Sl966hwhMFyXs77BwEyk1I2L8-vd7PQ/s400/2.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5336407682945135810" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Explanation&lt;/strong&gt;&lt;br /&gt;In a straight insertion sort, the list at any moment is divided into sorted and unsorted sublists. In each pass the first element of the unsorted sublist is inserted into the sorted sublist.&lt;br /&gt;If we have a list of n elements, it will take at most n-1 passes to sort the data.&lt;br /&gt;The straight selection sort efficiency is O(n&lt;sup&gt;2&lt;/sup&gt;)&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgL-fTF74yqLY1VQrInNIcAHE-VENWk1kCKx8XDmS5QJ3tfUtway6ArBO3tckPe7-yaK8SIWhaWGJUSgzXmOdZ4Pz70sBHaHelYbBSaLPexzw22R835oOfVdOZTVQPsXkZVflV0lw1zZuU/s1600-h/3.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 270px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgL-fTF74yqLY1VQrInNIcAHE-VENWk1kCKx8XDmS5QJ3tfUtway6ArBO3tckPe7-yaK8SIWhaWGJUSgzXmOdZ4Pz70sBHaHelYbBSaLPexzw22R835oOfVdOZTVQPsXkZVflV0lw1zZuU/s400/3.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5336408031214293986" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjv6tic3RKmqlE7FvZeZ757y3TqiSFZQSjSI3B-K_OXmQHrjWqSp8xhZCRss5IRMXxZJHscl46uKlQasAtOf2wY-hO5aIyJzswPgeD6_BU5ZAL4zG-wMpryRtHWrgaEIbkvPygW2oMyjgM/s1600-h/4.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 281px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjv6tic3RKmqlE7FvZeZ757y3TqiSFZQSjSI3B-K_OXmQHrjWqSp8xhZCRss5IRMXxZJHscl46uKlQasAtOf2wY-hO5aIyJzswPgeD6_BU5ZAL4zG-wMpryRtHWrgaEIbkvPygW2oMyjgM/s400/4.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5336408438127231298" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Shell Sort&lt;/strong&gt;&lt;br /&gt;The shell sort algorithm named after its creator, Donald L.Shell.&lt;br /&gt;It is an improved version of the straight insertion sort in which diminishing partitions are used to sort the data.&lt;br /&gt;The Worst case running time of shell sort using shell’s increment is O(N&lt;sup&gt;2&lt;/sup&gt;).&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtmuPm0BAij-qd94TnxQShBE2-DQnc1v_YDmy7f1jK3jWZ5gxaRXlVR_jfM5vEh8NGx9KxWKwhPrr6OUVQvvdEptXieaTTdv3eCA79Au9iESLB1JOAC1GDwH81Pf0BVKl3nAPnwszjRe4/s1600-h/5.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 213px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtmuPm0BAij-qd94TnxQShBE2-DQnc1v_YDmy7f1jK3jWZ5gxaRXlVR_jfM5vEh8NGx9KxWKwhPrr6OUVQvvdEptXieaTTdv3eCA79Au9iESLB1JOAC1GDwH81Pf0BVKl3nAPnwszjRe4/s400/5.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5336408905142315090" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQYx1sqB8PcPp3nnC-9hsltl4u5VRKhr3ERaqEcmjD-28Pr353NbwIS5qLqgEnY6P5NN_OGmVHqstyBUC2rtNrXZGx4-uWjjmzwCJMd54A0r9gONVgPmqQaiTmUD-yzoMD7MMuH5g9mh8/s1600-h/6.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 308px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQYx1sqB8PcPp3nnC-9hsltl4u5VRKhr3ERaqEcmjD-28Pr353NbwIS5qLqgEnY6P5NN_OGmVHqstyBUC2rtNrXZGx4-uWjjmzwCJMd54A0r9gONVgPmqQaiTmUD-yzoMD7MMuH5g9mh8/s400/6.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5336409082827151122" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrqF_Cgusn34yPhASzq60xVA-YvRSTn7v2AxEyWizM2DygULLHwKrn0xaGLgL4T4FofaZgCWY663eUcn-Iv20-2vfZnttsVjQZZ9q4GkBK3za1-mergv6GP67IRRsxYxsD-mEyengFsZc/s1600-h/7.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 255px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrqF_Cgusn34yPhASzq60xVA-YvRSTn7v2AxEyWizM2DygULLHwKrn0xaGLgL4T4FofaZgCWY663eUcn-Iv20-2vfZnttsVjQZZ9q4GkBK3za1-mergv6GP67IRRsxYxsD-mEyengFsZc/s400/7.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5336409283394742370" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhKGYGYwjcEcQ_LyjfZ5Ukm4p6_B9Erl8kfN_q055g_oz0t7DoOoUgHDrLNMTEPRId95333EHiZo55NMm-i-EkPXhsTvcODWSUgZgKBbc5jxAejj8d7jacbJhPu0A78hFNIivSd1SimmMo/s1600-h/8.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 306px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhKGYGYwjcEcQ_LyjfZ5Ukm4p6_B9Erl8kfN_q055g_oz0t7DoOoUgHDrLNMTEPRId95333EHiZo55NMm-i-EkPXhsTvcODWSUgZgKBbc5jxAejj8d7jacbJhPu0A78hFNIivSd1SimmMo/s400/8.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5336409502288639170" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Selection Sort&lt;/strong&gt;&lt;br /&gt;In each pass of the selection sort, the smallest element is selected from the unsorted sublist and exchanged with the element at the beginning of the unsorted list.&lt;br /&gt;The straight selection sort efficiency is O(n&lt;sup&gt;2&lt;/sup&gt;)&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhkalKm7Uk6NvOjWTiF9sLN794ZdAYvVAF_u-TngksNyvlyAkXkrkI6nc7IQz4VovCz4ZHBAl_M9ta9quCnxMz0kFrxutFNurwdDMqYfENNmZkVVSVRLeRXwCNho8iVylKxTIpelnsmKg8/s1600-h/9.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 167px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhkalKm7Uk6NvOjWTiF9sLN794ZdAYvVAF_u-TngksNyvlyAkXkrkI6nc7IQz4VovCz4ZHBAl_M9ta9quCnxMz0kFrxutFNurwdDMqYfENNmZkVVSVRLeRXwCNho8iVylKxTIpelnsmKg8/s400/9.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5336409795855376994" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzj-JJb1r-bzzHZsK5q7oPVgZE6oYcDsBCb1GIvZn-HDSmruX8081kN7q6JnPuhWlFgEBoo3ZwriP9bkvbTQuoZvUQkZ98qInJkxCJOP2sHLrf3cRZ3-6TwAgX8SIni10GrWFDWun4lZc/s1600-h/10.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 251px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzj-JJb1r-bzzHZsK5q7oPVgZE6oYcDsBCb1GIvZn-HDSmruX8081kN7q6JnPuhWlFgEBoo3ZwriP9bkvbTQuoZvUQkZ98qInJkxCJOP2sHLrf3cRZ3-6TwAgX8SIni10GrWFDWun4lZc/s400/10.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5336409800077527986" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Bubble Sort&lt;/strong&gt;&lt;br /&gt;Bubble sort is an exchange sort. The basic operation is the exchange of an adjacent pair of elements. So in the single bubble sort algorithm, the program will pass through the data, switching consecutive items which are out of order. After each pass through the list, the program checks to see if any switches were made. If there were, it passes through the list again, switching consecutive items which are still out of order. If no switches are made during an entire pass through the list, the data is sorted.&lt;br /&gt;&lt;br /&gt;In the  best case the efficiency of bubble sort is O(N).&lt;br /&gt;In the  worst case the efficiency of bubble sort is O(NM&lt;sup&gt;2&lt;/sup&gt;)&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Example of Bubble sort&lt;/strong&gt;&lt;br /&gt;Here is an example : we want to sort 390, 205, 182, 45, 235&lt;br /&gt;Bubble sort for the first pass (exchange of an adjacent pairs)&lt;br /&gt;&lt;u&gt;390&lt;/u&gt; 205 182 45 235 (Switch 1)&lt;br /&gt;205 &lt;u&gt;390&lt;/u&gt; 182 45 235 (Switch 2)&lt;br /&gt;205 182 &lt;u&gt;390&lt;/u&gt; 45 235 (Switch 3)&lt;br /&gt;205 182 45 &lt;u&gt;390&lt;/u&gt; 235 (Switch 4)&lt;br /&gt;205 182 45 235 &lt;u&gt;390&lt;/u&gt; ( First pass-sorted list)&lt;br /&gt;&lt;br /&gt;the first pass moves the largest element (390) to the n&lt;sup&gt;th&lt;/sup&gt; position ,forming a sorted list of length one&lt;br /&gt;the second pass only has to consider (n-1) elements and moves the second largest element to the (n-1) position.    &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Quick Sort&lt;/strong&gt;&lt;br /&gt;Quick sort is an exchange sort in which a pivot key is placed in its correct position in the array while rearranging other elements widely dispersed across the list.&lt;br /&gt;The efficiemcy of the Quick sort is :&lt;br /&gt;Worst Case = O(N&lt;sup&gt;2&lt;/sup&gt;) - the pivot is the smallest element&lt;br /&gt;Average Case = O(N log n)&lt;br /&gt;Best case = O(N log N) - the pivot is in the middle&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqQvwAyjnLmO9wbEXSZiUqQIWTS1q0iSg5c2RaoGeCDfHWLX-QnOuSwnxB_Zox5pEtsTUI_CgE-7VOAaTEvlpTKLL_yJ2z7iNTZwXQ_dbQfNgs1yMcT8amqeL9M7ZvtDY7Dpz-Yq1yDtc/s1600-h/11.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 279px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqQvwAyjnLmO9wbEXSZiUqQIWTS1q0iSg5c2RaoGeCDfHWLX-QnOuSwnxB_Zox5pEtsTUI_CgE-7VOAaTEvlpTKLL_yJ2z7iNTZwXQ_dbQfNgs1yMcT8amqeL9M7ZvtDY7Dpz-Yq1yDtc/s400/11.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5336411723153401554" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Radix Sort&lt;/strong&gt;&lt;br /&gt;The bin sorting approach can be generalized in a technique that is known as radix sorting.&lt;br /&gt;Assume that we have n integers in the range (0,n&lt;sup&gt;2&lt;/sup&gt;) to be sorted. (For a bin sort, m = n&lt;sup&gt;2&lt;/sup&gt;, and we would have an O(n+m) = O(n&lt;sup&gt;2&lt;/sup&gt;) algorithm.) Sort them in two phases:&lt;br /&gt;1. Using n bins, place a&lt;sub&gt;i&lt;/sub&gt; into bin a&lt;sub&gt;i&lt;/sub&gt; mod n,&lt;br /&gt;2. Repeat the process using n bins, placing a&lt;sub&gt;i&lt;/sub&gt; into bin floor(a&lt;sub&gt;i&lt;/sub&gt;/n), being careful to append to the end of each bin.&lt;br /&gt;This results in a sorted list.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Example&lt;/strong&gt;&lt;br /&gt;Consider the list of integers&lt;br /&gt;36 9 0 25 1 49 64 16 81 4&lt;br /&gt;Step1: Arrange the element according to the least significant decimal digits&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7YNb1x1hs1VcfXKel2hxU7ZuPctSeVAdMrOE6VMKkoMyvdekyCCj-bIxezVKzDeFVXOcFPC8vkxDN56OR28mXv4AaP6FypzsegX43JwhWaiO2JxZxCe8TXT0rbtBWrCOuhXNFn_KFr-I/s1600-h/12.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 400px; height: 127px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7YNb1x1hs1VcfXKel2hxU7ZuPctSeVAdMrOE6VMKkoMyvdekyCCj-bIxezVKzDeFVXOcFPC8vkxDN56OR28mXv4AaP6FypzsegX43JwhWaiO2JxZxCe8TXT0rbtBWrCOuhXNFn_KFr-I/s400/12.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5336414141172735602" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Step2:Arrange the elements according to the most significant digits&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiPgL2wixNmCDhulDBJ-qbg5QQp_WLZns0N-n_NQczbyLZTnrKB5gJgON4FHAaASuaxU7HKgBPfvSlGuUgYvLFtnsNjKsyT5LwSxLRMMC6C52hYjTyHUlJKc9IEOZ6jxmcRY0ggZM52yxM/s1600-h/13.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 400px; height: 215px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiPgL2wixNmCDhulDBJ-qbg5QQp_WLZns0N-n_NQczbyLZTnrKB5gJgON4FHAaASuaxU7HKgBPfvSlGuUgYvLFtnsNjKsyT5LwSxLRMMC6C52hYjTyHUlJKc9IEOZ6jxmcRY0ggZM52yxM/s400/13.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5336414396398109970" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Step3: Sorted list is :&lt;br /&gt;0 1 4 9 16 25 36 49 64 81&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Merge Sort&lt;/strong&gt;&lt;br /&gt;The basic merging algorithm takes two input arrays A and B, an output array C, and three counters, Aptr, Bptr, and Cptr, which are initially set to the beginning of their respective arrays. The smaller of A[Aptr] and B[Bptr] is copied to the next entry in C, and the appropriate counters are advanced. When either input list is exhausted, the remainder of the order list is copied to C.&lt;br /&gt;&lt;br /&gt;Example&lt;br /&gt;If the array A (Aptr) contains 1, 13 and B (Bptr) contains 2, 15, 27, 38, then the algorithm proceeds as follows.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjTDQMt-EWqiFhQz_YXuRmdLI8emHOVtbNVRp33IjXnXLcg_lTbSNyJvlI2i4-m1LCOPmFCZb-VYaVyGb5qwBfzi7IPL7xpGgIcTLtb_-VV2L8Q1gB3dvLaY6GqcIkXJWFW-m6rOPW1fl8/s1600-h/14.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 93px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjTDQMt-EWqiFhQz_YXuRmdLI8emHOVtbNVRp33IjXnXLcg_lTbSNyJvlI2i4-m1LCOPmFCZb-VYaVyGb5qwBfzi7IPL7xpGgIcTLtb_-VV2L8Q1gB3dvLaY6GqcIkXJWFW-m6rOPW1fl8/s400/14.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5336415200060692770" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;First, a comparison is done between 1 and 2.&lt;br /&gt;1 is added to C, and then 13 and 2 are compared.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7ahYGBNya4ZgknBjetUiW5yh7VPrAqsxyen_QEf_KqOBQyFFOAf0C5lfExAJdLK6zOi8PEo0fpmh5dKfj6xJxRyIsDS_Qsw_nkpXtC-mspB79uxSzWASnrgCUZG2TXWGSVM9fokQC7jE/s1600-h/15.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 238px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7ahYGBNya4ZgknBjetUiW5yh7VPrAqsxyen_QEf_KqOBQyFFOAf0C5lfExAJdLK6zOi8PEo0fpmh5dKfj6xJxRyIsDS_Qsw_nkpXtC-mspB79uxSzWASnrgCUZG2TXWGSVM9fokQC7jE/s400/15.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5336415526799446018" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;2 is added in C, and 13 and 15 are compared.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuhPvgyMIJGefeM7OdBJH_c9FoT_J90RPYfw1iDOXJKJmJ_bqE8PkDAOaODfwFB41jXGBTXrqma2sZ06OCN01O-kU-rjQNw_2HjBj1PRsYSFySSKk6ljGS-SVQYhWgmfxVfyWuxAwt35Y/s1600-h/16.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 248px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuhPvgyMIJGefeM7OdBJH_c9FoT_J90RPYfw1iDOXJKJmJ_bqE8PkDAOaODfwFB41jXGBTXrqma2sZ06OCN01O-kU-rjQNw_2HjBj1PRsYSFySSKk6ljGS-SVQYhWgmfxVfyWuxAwt35Y/s400/16.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5336416570590238290" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The remainder of the array B is then copied to C.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5Mlg9_P1WNkuKEO7BcJXtOP68oQLA-jeFN3GMaFyS7alt7ThMxBZoYlBgxYpXnwyd__t708Zce712OWBIEbstxKODowZxCsbsr7Qjy01eHKIDF10-jKedr9BJeGrRHe96_tJHAVq65cI/s1600-h/17.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 199px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5Mlg9_P1WNkuKEO7BcJXtOP68oQLA-jeFN3GMaFyS7alt7ThMxBZoYlBgxYpXnwyd__t708Zce712OWBIEbstxKODowZxCsbsr7Qjy01eHKIDF10-jKedr9BJeGrRHe96_tJHAVq65cI/s400/17.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5336417008757836754" /&gt;&lt;/a&gt;</description><link>http://note-for-it.blogspot.com/2009/05/algorithms-data-structures-sorting.html</link><author>noreply@blogger.com (Han)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmNU9ri25YLn8EGwpLuczCtNHaNUSBQT63gnIqWg2AcP8atK7n16Md5iFSpJp_V4bm5d96F7GpgFSoX3iylMRe56GOez7A9Oy6iuKXg0QAQbiw8mXRE_PBpFne08oEAEZM5mDpCIc1H9Q/s72-c/1.png" width="72"/><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2768273740072947120.post-8357858521979236783</guid><pubDate>Fri, 27 Feb 2009 23:47:00 +0000</pubDate><atom:updated>2009-02-27T15:58:40.645-08:00</atom:updated><title>Algorithms &amp; Data Structures - Queue</title><description>&lt;strong&gt;Definition&lt;/strong&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Queue is an ordered collection of items.&lt;/li&gt;&lt;li&gt;These items may be deleted at one end (called the HEAD of the queue) and inserted at other end (called the TAIL of the queue).&lt;/li&gt;&lt;li&gt;Example, to withdraw money at ATM&lt;/li&gt;&lt;li&gt;Also known as FIFO – first in first out&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_9cJPAjY7eejASFuNLiWy3J1CqVthmr9kx7m92eIyjNUReHhagCYI_Snb4VA035pWqXdpMoL0eRBCIrTav90BYDmfIRKNOrHLb_JEY956uGgljUdmkpWrCHo1TKN10hIRpggCe68Oqjo/s1600-h/Picture1.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5307628657013633106" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 400px; CURSOR: hand; HEIGHT: 178px; TEXT-ALIGN: center" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_9cJPAjY7eejASFuNLiWy3J1CqVthmr9kx7m92eIyjNUReHhagCYI_Snb4VA035pWqXdpMoL0eRBCIrTav90BYDmfIRKNOrHLb_JEY956uGgljUdmkpWrCHo1TKN10hIRpggCe68Oqjo/s400/Picture1.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Array and linked list implementation&lt;/strong&gt;&lt;br /&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgStkOQGvkY20Tw1T-i3z2ct0b0UnsNTi9pEajAoNxQFMhDGdDgHaMa2te0hv1PzURmNvJdh_UG4lLfeob7BHgsYGQ_QIl2_UnTcujypHhbPsq1RS2pgwrwWt5f2f-Ru0wTdvbOWCdWiDE/s1600-h/Picture2.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5307629005187888482" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 400px; CURSOR: hand; HEIGHT: 219px; TEXT-ALIGN: center" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgStkOQGvkY20Tw1T-i3z2ct0b0UnsNTi9pEajAoNxQFMhDGdDgHaMa2te0hv1PzURmNvJdh_UG4lLfeob7BHgsYGQ_QIl2_UnTcujypHhbPsq1RS2pgwrwWt5f2f-Ru0wTdvbOWCdWiDE/s400/Picture2.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Operations of Queue&lt;/strong&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Dequeue&lt;/li&gt;&lt;li&gt;Enqueue&lt;/li&gt;&lt;li&gt;QueueEmpty&lt;/li&gt;&lt;li&gt;QueueFull&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Enqueue&lt;/strong&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Enqueue is the shortened version of "entering a queue".&lt;/li&gt;&lt;li&gt;It refers to a situation where a new item is inserted to the queue.&lt;/li&gt;&lt;li&gt;After a new insertion is made, the new item becomes the tail of the queue.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Dequeue&lt;/strong&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Dequeue is a shortened version of "deleting from a queue".&lt;/li&gt;&lt;li&gt;This is a situation where the data element at the head of the queue will be deleted.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Array implementation&lt;/strong&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Using array to implement the queue&lt;/li&gt;&lt;li&gt;Will create a problem when the queue is full – memory space are fixed.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEico_VTFrhfhyZVGr5Zl7p1EU21RDWyrK0cj4n-c2yjkME2kbzqfs9J9GjFQAyFAdG2bJOqJrYSXVrCfkQ5OaC4QTJUbeXis5KLGxRQ6r4b1hqildCg23vqYjq7ElqAdl12Bu09sceVdIg/s1600-h/Picture3.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5307629846127907810" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 272px; CURSOR: hand; HEIGHT: 262px; TEXT-ALIGN: center" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEico_VTFrhfhyZVGr5Zl7p1EU21RDWyrK0cj4n-c2yjkME2kbzqfs9J9GjFQAyFAdG2bJOqJrYSXVrCfkQ5OaC4QTJUbeXis5KLGxRQ6r4b1hqildCg23vqYjq7ElqAdl12Bu09sceVdIg/s400/Picture3.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Problem solution&lt;/strong&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Create a circular queue. (using linked list)&lt;/li&gt;&lt;li&gt;Circular queue wraps around to the beginning whenever the Head or the Tail reaches the end of the queue.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgq5GbiPs0CoS_0H-entPan38Ty6gsPTIKHdG7qYkVBgDpjKRpgeKjQUYHpgvVID7FRp04iO_3csxJRfq-okz33cPrHbE_338d9h2BxoAXOW-J-8dqWeEUTPRRFLDTGJB0wvp-gNgwPdEY/s1600-h/Picture4.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5307630124432919522" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 273px; CURSOR: hand; HEIGHT: 262px; TEXT-ALIGN: center" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgq5GbiPs0CoS_0H-entPan38Ty6gsPTIKHdG7qYkVBgDpjKRpgeKjQUYHpgvVID7FRp04iO_3csxJRfq-okz33cPrHbE_338d9h2BxoAXOW-J-8dqWeEUTPRRFLDTGJB0wvp-gNgwPdEY/s400/Picture4.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Linked list implementation&lt;/strong&gt;&lt;br /&gt;* Enqueue&lt;br /&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1vc_jZLOH50u2lJNmY9OSfYiP11XF9SQsdTE1ZMrITIfe121jtru9gM6GuhDOpmCSxTWwfVDI-VLLcZkNQAB4yK2o_fsN8sXn8tpSTvpcaHzwTwcizT-0s9LEqAYTOXeRR9gP6iQyWOo/s1600-h/Picture5.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5307630387219345666" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 272px; CURSOR: hand; HEIGHT: 264px; TEXT-ALIGN: center" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1vc_jZLOH50u2lJNmY9OSfYiP11XF9SQsdTE1ZMrITIfe121jtru9gM6GuhDOpmCSxTWwfVDI-VLLcZkNQAB4yK2o_fsN8sXn8tpSTvpcaHzwTwcizT-0s9LEqAYTOXeRR9gP6iQyWOo/s400/Picture5.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXKDQu34W_4aeUzTuR2Zw1XNQoOmDrvcpurUs20h29-I8xh9WJe9VPXX3fDum4O9BASCMNExvvziwIACeEkidPWSNaMZCkb98cuprziPzAgWIS6ZlWbLBiWq5LhiCPf9cbsAHRipbWhbA/s1600-h/Picture6.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5307630455383747314" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 272px; CURSOR: hand; HEIGHT: 262px; TEXT-ALIGN: center" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXKDQu34W_4aeUzTuR2Zw1XNQoOmDrvcpurUs20h29-I8xh9WJe9VPXX3fDum4O9BASCMNExvvziwIACeEkidPWSNaMZCkb98cuprziPzAgWIS6ZlWbLBiWq5LhiCPf9cbsAHRipbWhbA/s400/Picture6.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Enqueue- Implementation&lt;/strong&gt;&lt;br /&gt;void Enqueue(QUEUENODEPTR *tailPtr, QUEUENODEPTR *headPtr, char Value)&lt;br /&gt;{&lt;br /&gt;QUEUENODEPTR newPtr;&lt;br /&gt;newPtr = malloc(sizeof(LISTNODE)); //Create a new node&lt;br /&gt;if (newPtr != NULL)&lt;br /&gt;{&lt;br /&gt;newPtr-&gt;data = Value;&lt;br /&gt;newPtr-&gt;nextPtr = NULL;&lt;br /&gt;(*tailPtr)-&gt;nextPtr = newPtr;&lt;br /&gt;(*tailPtr) = (*tailPtr)-&gt;nextPtr;&lt;br /&gt;if (*headPtr == NULL)&lt;br /&gt;*headPtr = *tailPtr;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Dequeue - Implementation&lt;/strong&gt;&lt;br /&gt;char Dequeue(QUEUENODEPTR *headPtr)&lt;br /&gt;{&lt;br /&gt;char value;&lt;br /&gt;QUEUENODEPTR tempPtr;&lt;br /&gt;if (*headPtr != NULL)&lt;br /&gt;{&lt;br /&gt;tempPtr = *headPtr;&lt;br /&gt;(*headPtr) = (*headPtr)-&gt;nextPtr;&lt;br /&gt;value = tempPtr-&gt;data;&lt;br /&gt;free(tempPtr);&lt;br /&gt;return value;&lt;br /&gt;{&lt;br /&gt;else&lt;br /&gt;printf(“Queue is empty”);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Application of queue&lt;/strong&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Scheduling system &lt;ul&gt;&lt;li&gt;Advantages&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Support print spooling&lt;/li&gt;&lt;li&gt;Information packet&lt;/li&gt;&lt;/ul&gt;</description><link>http://note-for-it.blogspot.com/2009/02/algorithms-data-structures-queue.html</link><author>noreply@blogger.com (Han)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_9cJPAjY7eejASFuNLiWy3J1CqVthmr9kx7m92eIyjNUReHhagCYI_Snb4VA035pWqXdpMoL0eRBCIrTav90BYDmfIRKNOrHLb_JEY956uGgljUdmkpWrCHo1TKN10hIRpggCe68Oqjo/s72-c/Picture1.png" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2768273740072947120.post-7396681166261534524</guid><pubDate>Sun, 21 Dec 2008 07:46:00 +0000</pubDate><atom:updated>2008-12-21T00:10:33.359-08:00</atom:updated><title>Linked List Based Implementation of Stack and Queue</title><description>&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Why different implementations&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The way the data structure is implemented is a measure of its efficiency (time and space)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;It is important to see different alternatives&lt;br /&gt;&lt;/li&gt;&lt;li&gt;So far we have discussed array based implementation (vector). What if we use second class arrays?&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Objectives:&lt;/span&gt;&lt;br /&gt;Discuss linked list based implementation of stack and queue.&lt;br /&gt;Compare and contrast two implementations&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Linked List based Stack&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Stack is LIFO data structure&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYbfq-3KMaLs5hrBrA7NqGYpEl05PzyJdhqQHASqKc7Q7LxwiLKc3DwCJPsHoSAfVXvdHTIfg8e4uAzRkyZYBOE9h3omPwnoAKMlJBQ04HsaFknGg-ZgYfMe538xIhmSJixpH-4sH6sc8/s1600-h/Picture+1.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 249px; height: 97px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYbfq-3KMaLs5hrBrA7NqGYpEl05PzyJdhqQHASqKc7Q7LxwiLKc3DwCJPsHoSAfVXvdHTIfg8e4uAzRkyZYBOE9h3omPwnoAKMlJBQ04HsaFknGg-ZgYfMe538xIhmSJixpH-4sH6sc8/s400/Picture+1.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5282147657489903682" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Linked list is a collection of nodes where each node has a data element and a pointer to the next element in the list.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgiQIYoosZu65siOeBw2d1KtMeeHsP3-RC34EOMyApCKG9FWxGY4hPjW8-cciSI9IcvrQzEaFhdPSiRm1CffnJ8g3jSOyZoA6e0bk63i7x0m4FpwN63xpTylgJMOhre55ZBHw5F1tuvac8/s1600-h/Picture+2.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 306px; height: 61px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgiQIYoosZu65siOeBw2d1KtMeeHsP3-RC34EOMyApCKG9FWxGY4hPjW8-cciSI9IcvrQzEaFhdPSiRm1CffnJ8g3jSOyZoA6e0bk63i7x0m4FpwN63xpTylgJMOhre55ZBHw5F1tuvac8/s400/Picture+2.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5282147983227861042" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Linked List based Stack- basic concepts&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Stack we push into and pop from the top of the stack.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Therefore a special pointer “toOftheStack” which is pointing to the top of the stack is created.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Intially toOftheStack is null.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Try following operations&lt;br /&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;push (a), push(b), push(c)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;pop()&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Linked List based Stack- C++ Details&lt;/span&gt;&lt;br /&gt;&lt;u&gt;A Node: (figure 16.19)&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;struct ListNode&lt;br /&gt;{&lt;br /&gt;Object element;&lt;br /&gt;ListNode *next;&lt;br /&gt;ListNode ( const Object &amp;amp; theElement, ListNode * n = NULL ) : element( theElement ), next( n ) { }&lt;br /&gt;&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Linked List based Stack- C++ Details&lt;/span&gt;&lt;br /&gt;Template&lt;br /&gt;template  &amp;#60class Object&gt; class Stack {&lt;br /&gt;public:&lt;br /&gt;Stack( );&lt;br /&gt;Stack( const Stack &amp;amp; rhs );&lt;br /&gt;~Stack( ); bool isEmpty( ) const;&lt;br /&gt;const Object &amp;amp; top( ) const;&lt;br /&gt;void makeEmpty( );&lt;br /&gt;void pop( );&lt;br /&gt;void push( const Object &amp;amp; x );&lt;br /&gt;Object topAndPop( );&lt;br /&gt;const Stack &amp;amp; operator=( const Stack &amp;amp; rhs );&lt;br /&gt;&lt;br /&gt;private:&lt;br /&gt;struct ListNode { Object element; ListNode *next; ListNode( const Object &amp;amp; theElement, ListNode * n = NULL ) : element( theElement ), next( n ) { } };&lt;br /&gt;&lt;br /&gt;ListNode *topOfStack; };&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Linked List based Stack- C++ Details&lt;/span&gt;&lt;br /&gt;Implementation&lt;br /&gt;&lt;center&gt;Stacklist.cpp&lt;/center&gt;&lt;br /&gt;push, pop, top, makeEmpty and = operator&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Linked List based Queue&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Queue if FIFO data structure&lt;/li&gt;&lt;li&gt;Implementation is very similar to stack. Here, both from and back of the data structure need pointers.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Linked List based Queue- basic concepts&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Queue, enqueue into the front of the stack. Dequeue from the back of the stack&lt;/li&gt;&lt;li&gt;Therefore two special pointers “front,” and “back,” are created.&lt;/li&gt;&lt;li&gt;Initially both both front and back are null.&lt;/li&gt;&lt;li&gt;Try following operations&lt;/li&gt;&lt;ul&gt;&lt;li&gt;enqueue (a), enqueue(b), enqueue(c)&lt;/li&gt;&lt;li&gt;dequeue()&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Linked List based Queue - C++ Details&lt;/span&gt;&lt;br /&gt;A Node:&lt;br /&gt;&lt;br /&gt;struct ListNode {&lt;br /&gt;Object element;&lt;br /&gt;ListNode *next;&lt;br /&gt;ListNode( const Object &amp;amp; theElement, ListNode * n = NULL ) : element( theElement ), next( n )&lt;br /&gt;{ }&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Linked List based Queue - C++ Details&lt;/span&gt;&lt;br /&gt;Template&lt;br /&gt;&lt;center&gt;Queuelist.h&lt;/center&gt;&lt;br /&gt;Notice that there are two pointers, front and back&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Linked List based Queue - C++ Details&lt;/span&gt;&lt;br /&gt;Implementation&lt;br /&gt;&lt;center&gt;Queuelist.cpp&lt;/center&gt;&lt;br /&gt;Enqueue, dequeue, copy constructure and = operator&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Array base vs. Linked list based Implementation&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;For large size stacks and queue specially the size is not known linked list is better.&lt;/li&gt;&lt;li&gt;For memory scare devices such as small handheld devices, linked list may perform better.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/class&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</description><link>http://note-for-it.blogspot.com/2008/12/linked-list-based-implementation-of.html</link><author>noreply@blogger.com (Han)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYbfq-3KMaLs5hrBrA7NqGYpEl05PzyJdhqQHASqKc7Q7LxwiLKc3DwCJPsHoSAfVXvdHTIfg8e4uAzRkyZYBOE9h3omPwnoAKMlJBQ04HsaFknGg-ZgYfMe538xIhmSJixpH-4sH6sc8/s72-c/Picture+1.png" width="72"/><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2768273740072947120.post-3941902008279975223</guid><pubDate>Sun, 21 Dec 2008 06:50:00 +0000</pubDate><atom:updated>2008-12-20T23:41:01.317-08:00</atom:updated><title>Algorithms &amp; Data Structures - Linked List</title><description>&lt;strong&gt;Objectives&lt;/strong&gt;&lt;br /&gt;&lt;u&gt;At the end of the class you should be able to answer:&lt;/u&gt;&lt;br /&gt;&lt;li&gt;Explain the design, use, and operation of a linear list&lt;/li&gt;&lt;li&gt;Implement a linear list using a linked list structure&lt;/li&gt;&lt;li&gt;Understand the operation of the linear list ADT&lt;/li&gt;&lt;li&gt;Write application programs using the linear list ADT&lt;/li&gt;&lt;li&gt;Design and implement different link-list structures&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Basic Operations&lt;/strong&gt;&lt;br /&gt;&lt;u&gt;The four basic list operations are :&lt;/u&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Insertion&lt;/li&gt;&lt;li&gt;Deletion&lt;/li&gt;&lt;li&gt;Retrieval&lt;/li&gt;&lt;li&gt;Traversal&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Insertion&lt;/strong&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Insertion is used to add a new element to the list.&lt;/li&gt;&lt;li&gt;List insertion can be ordered or random.&lt;/li&gt;&lt;li&gt;Ordered list are maintained in sequence according to the data or, when available, a key that identifies the data.&lt;/li&gt;&lt;li&gt;In random lists there is no sequential relationship between two elements.Random lists are sometimes called chronological lists.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;strong&gt;Figure 5-1 Shows the insertion of data into a list&lt;/strong&gt;&lt;/center&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0Ds1qwCLeZQVB83TT7HNsUGwj0mNYvqS8rSdCS0b69VqMUoKVrJwcesdyCOUwr1zQl9PN7zhyuF3WwPd8Vr5oAs6XKMixc9_3eyvkfHNqzYdEWSIwqgWQ2D0o6Ogx4AeS6obmzLq2NOw/s1600-h/Untitled1.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 241px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0Ds1qwCLeZQVB83TT7HNsUGwj0mNYvqS8rSdCS0b69VqMUoKVrJwcesdyCOUwr1zQl9PN7zhyuF3WwPd8Vr5oAs6XKMixc9_3eyvkfHNqzYdEWSIwqgWQ2D0o6Ogx4AeS6obmzLq2NOw/s400/Untitled1.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5282135545689891330" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Deletion&lt;/strong&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Deletion is used to remove an element from the list.&lt;/li&gt;&lt;li&gt;Deletion from a list requires that the list be searched to locate the data being deleted&lt;/li&gt;&lt;li&gt;Once located, the data are removed from the list.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;center&gt;Figure 5-2 Shows the Deletion operation&lt;/center&gt;&lt;/strong&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigHS2aeVyXdgnxk8hKpBaFD1OSfVgzszwH6nxFBwy6eotK5zckGQHkwgx9JfW7JhRbBcbzudSHIcStCP4bETRMJadQJWyoFCIUJJymVhyphenhyphenwAfVSF9Clh10jHdrscscYxH1awqc345oIuDY/s1600-h/Untitled2.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 244px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigHS2aeVyXdgnxk8hKpBaFD1OSfVgzszwH6nxFBwy6eotK5zckGQHkwgx9JfW7JhRbBcbzudSHIcStCP4bETRMJadQJWyoFCIUJJymVhyphenhyphenwAfVSF9Clh10jHdrscscYxH1awqc345oIuDY/s400/Untitled2.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5282136721018132434" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Retrieval&lt;/strong&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Retrieval is used to get the information related to an element without changing the structure of the list.&lt;/li&gt;&lt;li&gt;List retrieval requires that data be located in a list and presented to the calling module without changing the contents of the list.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;center&gt;Figure 5-3 Shows retrieving data from a list&lt;/center&gt;&lt;/strong&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4GXBJjfqEZ8k7LS1EH5Ply4mhUnqME9_NIy6tO7QEdR2dEI0nmBspnxUVUk4OvDs6T4z6WIaMSga7APCIMTQFMEfARFQM0Xun4wWHtJZqXmwYyzklMjYer2XiZahI0CfYGb2zkQfYtPA/s1600-h/Untitled3.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 239px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4GXBJjfqEZ8k7LS1EH5Ply4mhUnqME9_NIy6tO7QEdR2dEI0nmBspnxUVUk4OvDs6T4z6WIaMSga7APCIMTQFMEfARFQM0Xun4wWHtJZqXmwYyzklMjYer2XiZahI0CfYGb2zkQfYtPA/s400/Untitled3.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5282137389717669954" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Traversal&lt;/strong&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;List traversal processes each element in a list in sequence&lt;/li&gt;&lt;li&gt;It requires a looping algorithm rather than a search.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Implementation&lt;/strong&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Several data structures can be used to implement a list; we use a linked list.&lt;/li&gt;&lt;li&gt;Linked list is a good structure for a list because data are easily inserted and deleted at the beginning, in the middle, or at the end of the list.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Data Structure&lt;/strong&gt;&lt;br /&gt;To implement a list, we need two different structures, a head node and data node.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;strong&gt;Figure 5-5 Shows a head node and data node&lt;/strong&gt;&lt;/center&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-bskH4VCV3GbhymAdnR423dUtTDlP6UPc-Np8kq8lJPzpFjcaHWTBQNyKXY5N7X4TQdClPFqkhbKTxzZai2dCEPkKbZQZWNALA3Y9M-FlXwEY58jM_G4taoYGiycNqHhyphenhyphenrS5JOf4rqrQ/s1600-h/Untitled4.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 180px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-bskH4VCV3GbhymAdnR423dUtTDlP6UPc-Np8kq8lJPzpFjcaHWTBQNyKXY5N7X4TQdClPFqkhbKTxzZai2dCEPkKbZQZWNALA3Y9M-FlXwEY58jM_G4taoYGiycNqHhyphenhyphenrS5JOf4rqrQ/s400/Untitled4.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5282138584152662338" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Algorithm&lt;/strong&gt;&lt;br /&gt;Create List:&lt;br /&gt;Create list allocate the head structure and initializes the metadata for the list.&lt;br /&gt;Figure 5-6 shows the header before and after it is initialized by create list.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;strong&gt;Figure 5-6 Create list&lt;/strong&gt;&lt;/center&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgFvs70H7h4d3TRE3FYdUF2cYTpZSNZdYOS6t0q5oDyvvEssUCguk0ckws2Ey6Pjpnf85rbysakokJsQOsD0ubJcM57UieJMtwwhmHJWT00nVsZfmijXFi97kFhSYi1rjI3dszgvxGl-s/s1600-h/Untitled5.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 151px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgFvs70H7h4d3TRE3FYdUF2cYTpZSNZdYOS6t0q5oDyvvEssUCguk0ckws2Ey6Pjpnf85rbysakokJsQOsD0ubJcM57UieJMtwwhmHJWT00nVsZfmijXFi97kFhSYi1rjI3dszgvxGl-s/s400/Untitled5.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5282138967512534802" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;strong&gt;Algorithm for creating a list&lt;/strong&gt;&lt;/center&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7cLr-h7mtHShz0b6cAc18lz6j2mmtiwrdoE164QTfU8cxbTIrzXdiDS8veGbGAtmmTiIfbBexdTkr-KDsQybY8p2n9cyRzDcd6govQ_LfArwucMA_mBfr5vilnncmuS15Qj9R48j8nEE/s1600-h/Untitled6.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 156px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7cLr-h7mtHShz0b6cAc18lz6j2mmtiwrdoE164QTfU8cxbTIrzXdiDS8veGbGAtmmTiIfbBexdTkr-KDsQybY8p2n9cyRzDcd6govQ_LfArwucMA_mBfr5vilnncmuS15Qj9R48j8nEE/s400/Untitled6.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5282139687506428242" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Insert Node&lt;/strong&gt;&lt;br /&gt;Insert node adds data to a list. Given the predecessor, there are three steps to the insertion:&lt;br /&gt;1. Allocate memory for the new node and move data to the node.&lt;br /&gt;2. Point the new node to its successor.&lt;br /&gt;3. Point the new node’s predecessor to the new node.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;strong&gt;Figure 5-7 Add node to empty list&lt;/strong&gt;&lt;/center&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiaooaw_L57Tv3o_D8b0DQH0AY7NFe67i_JeNXuwe7dmv8dw9OrYT2jBEsKWSGtJD-Ny0uPNGzLIWkyIPxh5A49z1sm6yPFtpbXer8uOI56Zeu6qM8SyZx3LRD3fgjQfraVi9o5G1-tLTI/s1600-h/Untitled7.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 250px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiaooaw_L57Tv3o_D8b0DQH0AY7NFe67i_JeNXuwe7dmv8dw9OrYT2jBEsKWSGtJD-Ny0uPNGzLIWkyIPxh5A49z1sm6yPFtpbXer8uOI56Zeu6qM8SyZx3LRD3fgjQfraVi9o5G1-tLTI/s400/Untitled7.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5282140345250003874" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Insert at Beginning&lt;/strong&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;To insert a node at the beginning of the list, we simply point the new node to the first node of the list and then ser the head pointer to point to the new first node.&lt;/li&gt;&lt;li&gt;Figure 5-8 shows inserting a node at the beginning&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;center&gt;Figure 5-8 Shows Add node at Beginning&lt;/center&gt;&lt;/strong&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZAKn_IFYhcgfH0qnJiCOnrWZ2uV8UfwRNbhx76U0PEmhOC1KCgIVncudzKYXDUCP3gWPdvMnizxP9JbhQI4o0_quLc-A35fKSiqFgL8SkJDZDcyZeP7nDKEjAWdhbfg_3sT8Zp7GanMU/s1600-h/Untitled8.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 267px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZAKn_IFYhcgfH0qnJiCOnrWZ2uV8UfwRNbhx76U0PEmhOC1KCgIVncudzKYXDUCP3gWPdvMnizxP9JbhQI4o0_quLc-A35fKSiqFgL8SkJDZDcyZeP7nDKEjAWdhbfg_3sT8Zp7GanMU/s400/Untitled8.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5282141101530720130" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Insert in Middle&lt;/strong&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;To insert a node between two nodes, we point the new node to its successor and  then point its predecessor to the new node.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Figure 5-9 shows inserting a node in the middle.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;center&gt;Figure 5-9 Add node in Middle&lt;/center&gt;&lt;/strong&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9xekTsY3g-9ZACB0XvAPzh4Hp-RFoYQj5RpM_mFDE3sbOylTSK7Od2XTuFzwbTs4PIJnhNb6D9Y_KYueaB1bFvinJ6l_RNdOk0au80dn9oA7nHLe8SLPLCwFvWDSktAfkI3cwQUJidBk/s1600-h/Untitled9.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 278px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9xekTsY3g-9ZACB0XvAPzh4Hp-RFoYQj5RpM_mFDE3sbOylTSK7Od2XTuFzwbTs4PIJnhNb6D9Y_KYueaB1bFvinJ6l_RNdOk0au80dn9oA7nHLe8SLPLCwFvWDSktAfkI3cwQUJidBk/s400/Untitled9.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5282141565098772082" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Insert at End&lt;/strong&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;To add at the end of the list, we only need to point the predessor to the new node.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;The Figure5-10 insert the node at the end&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;strong&gt;Figure 5-10 Add node at End&lt;/strong&gt;&lt;/center&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5D5Vg2-q2LDSZ6PCT7Y4O6xYRGS1eJCWb2nsk3_6ZqVS26rS_2CH1Tbe8SLlBeXhWMR3woyowl-ukLt73WUwX_4FetTBL1fBoDoVtD8NzkzGAh0R7dStrcw_Ar_KaAaxOaUvPM_YWUqA/s1600-h/Untitled10.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 281px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5D5Vg2-q2LDSZ6PCT7Y4O6xYRGS1eJCWb2nsk3_6ZqVS26rS_2CH1Tbe8SLlBeXhWMR3woyowl-ukLt73WUwX_4FetTBL1fBoDoVtD8NzkzGAh0R7dStrcw_Ar_KaAaxOaUvPM_YWUqA/s400/Untitled10.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5282141894245960610" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;strong&gt;Algorithm for Insertion  is shown in figure 5-2&lt;/strong&gt;&lt;/center&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEib6Brlj00wyC_L0srZvYJNRQPmjRVBk-9WBPQNjmf_TnXWZxoiW4oG9vjO2oupiWjW_YFnXXmAGU3AFLLtS_b0DChDCXAoMEDhCiDiHE8dahYCkEg9fjgIy5LJhXGbjaWu3Rw-HaHIzlM/s1600-h/Untitled11.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 282px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEib6Brlj00wyC_L0srZvYJNRQPmjRVBk-9WBPQNjmf_TnXWZxoiW4oG9vjO2oupiWjW_YFnXXmAGU3AFLLtS_b0DChDCXAoMEDhCiDiHE8dahYCkEg9fjgIy5LJhXGbjaWu3Rw-HaHIzlM/s400/Untitled11.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5282142200290488754" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Delete Node&lt;/strong&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The delete node algorithm logically removes a node from the list by changing various link pointers and then physically delete the node from dynamic memory.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Figure 5-11 shows Deleting the first node&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;strong&gt;Delete First Node&lt;/strong&gt;&lt;/center&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitJwtt9qTyVXWCByF1vMInwp0WO_EV-QAKrqsU5ytIIJ-qfoX_rP8ZiJr0XL2LPYKBnbFE_FDJUblnt5cei2jkZKnkHIHoShIEGGrLQlBvXyKzyDz9d0s_d5DLNSjefa0uJ2Z4qCM81gE/s1600-h/Untitled12.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 276px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitJwtt9qTyVXWCByF1vMInwp0WO_EV-QAKrqsU5ytIIJ-qfoX_rP8ZiJr0XL2LPYKBnbFE_FDJUblnt5cei2jkZKnkHIHoShIEGGrLQlBvXyKzyDz9d0s_d5DLNSjefa0uJ2Z4qCM81gE/s400/Untitled12.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5282142617170810258" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;strong&gt;Algorithm for Deleting a node&lt;/strong&gt;&lt;/center&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiD6cq59nQyiIdo3fJVbRlMWgtcaYfwJCGHaQ_ypd0-3CIWEJjBuZseyhCES3DP_jETQIm-ayF8VNoU7vdPNouaN6v3rOWNcXQuhX8CPiQgAlOklo_3QyzO6XK-jH1bcWmedbQdJJAfqFs/s1600-h/Untitled13.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 259px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiD6cq59nQyiIdo3fJVbRlMWgtcaYfwJCGHaQ_ypd0-3CIWEJjBuZseyhCES3DP_jETQIm-ayF8VNoU7vdPNouaN6v3rOWNcXQuhX8CPiQgAlOklo_3QyzO6XK-jH1bcWmedbQdJJAfqFs/s400/Untitled13.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5282142972448796130" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Retrieve Node&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;center&gt;Figure 5-5 Shows retrieve list node algorithm&lt;/center&gt;&lt;/strong&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7-gVuBbOIzE1AI5cYQDgt8NnU_QtqMG_JOM5tNyMQhlax1bizrz-feSyjOlphC-29ueOsbJb2NyOsG0hSeWV6y_5ZWpI_nmUQmiWa9RXwPJAEo5atTKTA9qMZeWWAT_P_ERdjQ4imjNA/s1600-h/Untitled14.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 257px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7-gVuBbOIzE1AI5cYQDgt8NnU_QtqMG_JOM5tNyMQhlax1bizrz-feSyjOlphC-29ueOsbJb2NyOsG0hSeWV6y_5ZWpI_nmUQmiWa9RXwPJAEo5atTKTA9qMZeWWAT_P_ERdjQ4imjNA/s400/Untitled14.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5282143673406004034" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxUF4_XfcN3HypFkLnd8obIxSc2wNM4ikTCKaoya_AHv_PsNL-xrcXdloT2G5-eifHdDBTFAqdOt8HnWSaCqOluaamLdbhrjzb-xeMK3_RHNMPJS9Mjf95FnCn8kZb6vR3ve5VPzneGtI/s1600-h/Untitled15.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 161px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxUF4_XfcN3HypFkLnd8obIxSc2wNM4ikTCKaoya_AHv_PsNL-xrcXdloT2G5-eifHdDBTFAqdOt8HnWSaCqOluaamLdbhrjzb-xeMK3_RHNMPJS9Mjf95FnCn8kZb6vR3ve5VPzneGtI/s400/Untitled15.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5282144030812877634" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKvlvgiSTZPEiOecuA1_Xv-hYkN17WDNq097Qn432rQFINEtPZXhUQ1czYnOPd3J1G0eX2oCsggpVyUv2Znjmun4BpwwkOmRqb08FLCo2T53gJB9XI8gc3IE_jbuupDIizlPpPnlRX4dk/s1600-h/Untitled16.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 147px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKvlvgiSTZPEiOecuA1_Xv-hYkN17WDNq097Qn432rQFINEtPZXhUQ1czYnOPd3J1G0eX2oCsggpVyUv2Znjmun4BpwwkOmRqb08FLCo2T53gJB9XI8gc3IE_jbuupDIizlPpPnlRX4dk/s400/Untitled16.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5282144246011432098" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNdke73j9199dn8PNvlk3k8nw3oF9GdB30RVRqNq3XnmgaXqCZaP5LAAMBb8jwB846iNuJMADjeNOg6sMrSnFxvyjMnwNzcA00Y4l1aTReTyHpV-xoFZO-yzS8EY3inCpUZy-OmXJduRc/s1600-h/Untitled17.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 296px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNdke73j9199dn8PNvlk3k8nw3oF9GdB30RVRqNq3XnmgaXqCZaP5LAAMBb8jwB846iNuJMADjeNOg6sMrSnFxvyjMnwNzcA00Y4l1aTReTyHpV-xoFZO-yzS8EY3inCpUZy-OmXJduRc/s400/Untitled17.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5282144455748854274" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Advance Linked List&lt;/strong&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Circular Linked List&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Circular linked list is a type of linked list where the last node will point back to the first node&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;strong&gt;Graphical view of a circular linked list&lt;/strong&gt;&lt;/center&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhI60H94HDnpvwnGsxrZa5GimIuobcdp2U19ilmseiME_uye42UaKHi1-ICsjWv4HMV2fqu5RxPoboUPtT-2ut_Wf5mXzOxp_bgqGqDTHpUzCpdl8jFfiqkvxSL-qxhVHsVuuAzJqBe_us/s1600-h/Picture+1.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 381px; height: 170px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhI60H94HDnpvwnGsxrZa5GimIuobcdp2U19ilmseiME_uye42UaKHi1-ICsjWv4HMV2fqu5RxPoboUPtT-2ut_Wf5mXzOxp_bgqGqDTHpUzCpdl8jFfiqkvxSL-qxhVHsVuuAzJqBe_us/s400/Picture+1.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5282144977927430514" /&gt;&lt;/a&gt;</description><link>http://note-for-it.blogspot.com/2008/12/algorithms-data-structures-linked-list.html</link><author>noreply@blogger.com (Han)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0Ds1qwCLeZQVB83TT7HNsUGwj0mNYvqS8rSdCS0b69VqMUoKVrJwcesdyCOUwr1zQl9PN7zhyuF3WwPd8Vr5oAs6XKMixc9_3eyvkfHNqzYdEWSIwqgWQ2D0o6Ogx4AeS6obmzLq2NOw/s72-c/Untitled1.png" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2768273740072947120.post-178901253268696069</guid><pubDate>Mon, 01 Dec 2008 08:53:00 +0000</pubDate><atom:updated>2008-12-04T10:49:32.174-08:00</atom:updated><title>Algorithms &amp; Data Structures - Heap</title><description>A &lt;u&gt;priority queue&lt;/u&gt; is a special type of queue where items with special characteristic are removed from the list first.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAsu0xUHMtvHdl7iHDrJ0CZOXkcrF-txZEj2cBpTmvikfUUVAqt0imH9cHnRkK3gEoVy7DuyoNcJAaJTBkkd5m_DJRlzKhhL4EZnQswDGFW_OgZvSF2mzdJTa1Kd_xBFreGeVrTznIuls/s1600-h/1.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 391px; height: 229px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAsu0xUHMtvHdl7iHDrJ0CZOXkcrF-txZEj2cBpTmvikfUUVAqt0imH9cHnRkK3gEoVy7DuyoNcJAaJTBkkd5m_DJRlzKhhL4EZnQswDGFW_OgZvSF2mzdJTa1Kd_xBFreGeVrTznIuls/s400/1.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5274742559115700002" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;Heap&lt;/u&gt;&lt;/strong&gt; is a priority queue data structure.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;heap&lt;/span&gt; is a structure that fulfils two properties:&lt;br /&gt;&lt;br /&gt;1.Shape (no hole)&lt;br /&gt;A heap must be a complete tree.&lt;br /&gt;&lt;br /&gt;2.Order of its element&lt;br /&gt;The value stored in each node of the heap must be greater than, less than, or equal to the value of its children, depending on what type of heap it is.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Nodes in a heap are filled from left to right, and we cannot proceed to the next lower level of the tree until all nodes in that particular level are filled.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;&lt;u&gt;&lt;span class="Apple-style-span"  style="font-size:x-large;"&gt;There are two types of heaps:&lt;/span&gt;&lt;/u&gt;&lt;span class="Apple-style-span"  style="font-size:x-large;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Ascending heap&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This is a heap in which the values of the parent's nodes are smaller than or equal to the value of the children's nodes.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgyoUfbDbzU-bgSAWBp7hoMg4t3gMHbHbnW8EOvElC7OzT1rrQ5l205a9BREHVZNv-mnMe8ed5ts_erXZ5b2gchpF9RjxFBkzBX4FY_WAPh5trHehA1UHFUK8KEWjpcw7u6EA_FsgbVnKE/s1600-h/accending.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 306px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgyoUfbDbzU-bgSAWBp7hoMg4t3gMHbHbnW8EOvElC7OzT1rrQ5l205a9BREHVZNv-mnMe8ed5ts_erXZ5b2gchpF9RjxFBkzBX4FY_WAPh5trHehA1UHFUK8KEWjpcw7u6EA_FsgbVnKE/s400/accending.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5274742568488147746" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Descending heap&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This is a heap in which the value of the parent's nodes are greater than or equal to the value of the children's nodes&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipKQbGhPAu9eYXMgHyBJ4mNYjt6UQfnVCx_-rXtW7OCZXXvSDZjNdXIl35ROzgFvbaE0cCftdWG4eSO4jE7IMrZPOLzLR3qtYLMjURsVLs35uooMUQ1S58vi5NRSSQJOC5a4AYEcJZcn0/s1600-h/descending.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 306px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipKQbGhPAu9eYXMgHyBJ4mNYjt6UQfnVCx_-rXtW7OCZXXvSDZjNdXIl35ROzgFvbaE0cCftdWG4eSO4jE7IMrZPOLzLR3qtYLMjURsVLs35uooMUQ1S58vi5NRSSQJOC5a4AYEcJZcn0/s400/descending.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5274760121142616210" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Example:&lt;/u&gt;&lt;br /&gt;Given these data: 17, 8, 12, 4, 26, 5, 14.&lt;br /&gt;Build a descending and ascending Heap&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;BINARY HEAP&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The binary heap is the classic method used to implement priority queues.&lt;br /&gt;&lt;br /&gt;A binary heap is a binary tree that, except for the bottommost level, is completely filled from left to right.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLwAF0zs6EExjrAc2RejHzjsj8rT2efJnDgV7Ope5DRMdZHALWhrC7lXVC1r4BwUE-vLbqnMFTO3OzKe2oNO4YZUT30lpSQaUwTySNBRGNS6TqLkP4AWpYO11-H-dTEL5YjwDubBReb6o/s1600-h/descending.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 306px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLwAF0zs6EExjrAc2RejHzjsj8rT2efJnDgV7Ope5DRMdZHALWhrC7lXVC1r4BwUE-vLbqnMFTO3OzKe2oNO4YZUT30lpSQaUwTySNBRGNS6TqLkP4AWpYO11-H-dTEL5YjwDubBReb6o/s400/descending.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5274760113655287874" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;HEAP SORT&lt;/span&gt;&lt;br /&gt;&lt;li&gt;A heapSort is a method of sorting an array of items of no particular order into an array of certain order.&lt;/li&gt;&lt;li&gt;Applicable to its name, this method uses a heap to facilitate sort operations.&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;Operations with HEAPSORT&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Insertion&lt;/li&gt;&lt;li&gt;Deletion&lt;/li&gt;&lt;ul&gt;&lt;li&gt;delete Min&lt;/li&gt;&lt;li&gt;delete Max&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Insertion&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCHS1LR6lqQkhurFs4HImLPA6xqW5RzBCFpzpM3Aid92CyrS3oIZuVxOmqVxfJYVI2hp7J6CpdW_7D38I9TRDulz7wEyxGdxmQRCq6Tnmy2M0H6hCHOhtBwLf7KndP0zFYomMDiFci83Q/s1600-h/insertion.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 299px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCHS1LR6lqQkhurFs4HImLPA6xqW5RzBCFpzpM3Aid92CyrS3oIZuVxOmqVxfJYVI2hp7J6CpdW_7D38I9TRDulz7wEyxGdxmQRCq6Tnmy2M0H6hCHOhtBwLf7KndP0zFYomMDiFci83Q/s400/insertion.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5274742571815454274" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;REHEAP UP CONCEPT&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Delete Min&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwYNlMWVc59a5Ldvzvq9K8_fr-8C4MLoenOFaExSW7yjMPZhIqxBRC46VuzidW9p3XnLp4hKHeM-ZU05G2hjFrkz3RUsEirqutoBIH-GXjRixTcO9uyZl4uqIG5O7A7IP9WvsjTMuJN6M/s1600-h/delete+min.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 258px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwYNlMWVc59a5Ldvzvq9K8_fr-8C4MLoenOFaExSW7yjMPZhIqxBRC46VuzidW9p3XnLp4hKHeM-ZU05G2hjFrkz3RUsEirqutoBIH-GXjRixTcO9uyZl4uqIG5O7A7IP9WvsjTMuJN6M/s400/delete+min.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5274742574467449650" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;Coding : check previous courseware&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Delete Max&lt;/span&gt;&lt;br /&gt;Involved descending heap&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEji9gzZD3tq0kWFT-smct7p0ruSlR3wNDWxsotwlQbssHlUSvVN4ZoVF3kVqHbGdWwxepMn7F83gtAx6SDCk0PHIOw0Pe6HoQPaggu5HO1idU9aMmsSDZ4hywg-uzvBTFaVr_L18R_5qUA/s1600-h/wrong.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 337px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEji9gzZD3tq0kWFT-smct7p0ruSlR3wNDWxsotwlQbssHlUSvVN4ZoVF3kVqHbGdWwxepMn7F83gtAx6SDCk0PHIOw0Pe6HoQPaggu5HO1idU9aMmsSDZ4hywg-uzvBTFaVr_L18R_5qUA/s400/wrong.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5274762933394954178" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Exercise 1:&lt;/u&gt;&lt;br /&gt;Given the following numbers, build an ascending and descending heap.&lt;br /&gt;&lt;br /&gt;8, 54, 43, 3, 77, 89, 21, 23, 5, 40&lt;br /&gt;&lt;br /&gt;Perform deletemin for the ascending heap and deletemax for the descending heap&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Exercise 2:&lt;/u&gt;&lt;br /&gt;Use heapsort to sort the numbers into ascending list.&lt;br /&gt;&lt;br /&gt;8, 54, 43, 3, 77, 89, 21, 23, 5, 40</description><link>http://note-for-it.blogspot.com/2008/12/algorithms-data-structures-heap.html</link><author>noreply@blogger.com (Han)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAsu0xUHMtvHdl7iHDrJ0CZOXkcrF-txZEj2cBpTmvikfUUVAqt0imH9cHnRkK3gEoVy7DuyoNcJAaJTBkkd5m_DJRlzKhhL4EZnQswDGFW_OgZvSF2mzdJTa1Kd_xBFreGeVrTznIuls/s72-c/1.png" width="72"/><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2768273740072947120.post-5611697903043544804</guid><pubDate>Tue, 25 Nov 2008 09:29:00 +0000</pubDate><atom:updated>2008-11-26T07:57:55.803-08:00</atom:updated><title>Algorithms &amp; Data Structures - Hashing</title><description>&lt;span style="font-weight:bold;"&gt;Objective&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;At the end of the class learner will be able to answer the following:&lt;/u&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Design and implement hash-list searches&lt;/li&gt;&lt;li&gt;Discuss the merits of different collision resolution algorithms&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Hashed List Searches&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The goal of a hashed search is to find the target data in only one test. After discussing some basic hashed list concepts, we discuss eight hashing methods.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Definition:&lt;/span&gt;&lt;br /&gt;Hashing is a key-to-address mapping process.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Terms must be familiarized.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Synonyms:&lt;/span&gt; The set of keys that hash to the same location&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Collision:&lt;/span&gt; A collision occurs when a hashing algorithm produces an address for an insertion key and that address is already occupied.&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Home address:&lt;/span&gt; The address produced by the hashing algorithm is known as the home address.&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Prime area:&lt;/span&gt; The memory that contains all of the home addresses is known as the prime area.&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Probe:&lt;/span&gt; Each calculation of an address and test for success is known as a probe.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Hash Concept&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhcWvaAFR1WrqBXbyjN9MDDlmyKWG8e_ebJtlha5yXTR9koz8b8ZqrqoNg065pErBBQwkiS65HVtTiJVWBhAI4SnS_z1KJR_j3xHRvnjD2rECNXkDnYowC_JYZjfBx_XXgOTv-j5eaaF7g/s1600-h/1.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 276px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhcWvaAFR1WrqBXbyjN9MDDlmyKWG8e_ebJtlha5yXTR9koz8b8ZqrqoNg065pErBBQwkiS65HVtTiJVWBhAI4SnS_z1KJR_j3xHRvnjD2rECNXkDnYowC_JYZjfBx_XXgOTv-j5eaaF7g/s400/1.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5272527142968758466" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Figure 13-7 shows collision Resolution concept&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhWreehyxmx22hlNRmnxvAUgDwu693OSfx_it3s2OZKbZ4_l9KsYLG3rQEMd6U90ENDMJGLgbp99emYkUIgaGC-xIa8SpMPv6soXdpWDlYzYJRkKb9-uK7xfQLdKcNVMM_LMY2CydtiVD8/s1600-h/2.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 181px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhWreehyxmx22hlNRmnxvAUgDwu693OSfx_it3s2OZKbZ4_l9KsYLG3rQEMd6U90ENDMJGLgbp99emYkUIgaGC-xIa8SpMPv6soXdpWDlYzYJRkKb9-uK7xfQLdKcNVMM_LMY2CydtiVD8/s400/2.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5272527148767380626" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Hashing Methods&lt;/span&gt;&lt;br /&gt;There are eight hashing methods they are:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Direct method&lt;/li&gt;&lt;li&gt;Substraction method&lt;/li&gt;&lt;li&gt;Modulo-division&lt;/li&gt;&lt;li&gt;Midsquare&lt;/li&gt;&lt;li&gt;Digit extraction&lt;/li&gt;&lt;li&gt;Rotation&lt;/li&gt;&lt;li&gt;Folding&lt;/li&gt;&lt;li&gt;Pseudorandom generation&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Figure 13-8 shows Basic Hashing Techniques&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-VWHYevn4-CcSiIhXFSFZybKXcS8_m5uBGqP-EhfQ4Bdbc-EGIHuFxx6IiTqfRTgljN7k43X2rjSV8MOVc9sUyTzUbMRXxQmI4kzyUtICuXVmVmpF3BfmqruUGFxqyKN5YSVG0D8-O_k/s1600-h/3.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 188px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-VWHYevn4-CcSiIhXFSFZybKXcS8_m5uBGqP-EhfQ4Bdbc-EGIHuFxx6IiTqfRTgljN7k43X2rjSV8MOVc9sUyTzUbMRXxQmI4kzyUtICuXVmVmpF3BfmqruUGFxqyKN5YSVG0D8-O_k/s400/3.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5272528746410867986" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Direct Method&lt;/span&gt;&lt;br /&gt;In direct hashing the key is the address without any algorithmic manipulation.&lt;br /&gt;Direct hashing is limited, but it can be very powerful because it guarantees that there are no synonyms and therefore no collision.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Example:&lt;/u&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXQHC-ZZ3pEWexdM83yWjBSqaiHppHuf6m81l3u9gjw0jujU5hCPyYIx4b9iXXi74rqJFr6Su1wKQ0vKQaMThx5ieh9kv3EI7Y4dyj3CLd5Aqp2-6AdeBwidoWeMLt3ZTvkr-W9UdeC0k/s1600-h/4.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 259px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXQHC-ZZ3pEWexdM83yWjBSqaiHppHuf6m81l3u9gjw0jujU5hCPyYIx4b9iXXi74rqJFr6Su1wKQ0vKQaMThx5ieh9kv3EI7Y4dyj3CLd5Aqp2-6AdeBwidoWeMLt3ZTvkr-W9UdeC0k/s400/4.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5272945781378608882" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Modulo-division Method&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;This is also known as division remainder method.&lt;/li&gt;&lt;li&gt;This algorithm works with any list size, but a list size that is a prime number produces fewer collisions than other list sizes.&lt;/li&gt;&lt;li&gt;The formula to calculate the address is:&lt;br /&gt;Address = key MODULO listsize + 1&lt;br /&gt;Where listsize is the number of elements in the arrary.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Example:&lt;/u&gt;&lt;br /&gt;Given data : &lt;br /&gt;Keys are : 137456  214562 140145&lt;br /&gt;137456 % 19 +1 = 11&lt;br /&gt;214562 % 19 + 1 = 15&lt;br /&gt;140145 % 19 + 1 = 2&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6UIYlJ2gA0yU5Mc6lO5WyVfCmpEhTByLUc9NT7eb-GqQInUqvrMT4XX7UvjINEAcggTA9fl_wtDC5eY3gLGXYLsJhOhPAa3IyIrr5_co0NtAUOOHWwpRU_OzdLcvp_B6SMGWciTA3eJk/s1600-h/5.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 381px; height: 400px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6UIYlJ2gA0yU5Mc6lO5WyVfCmpEhTByLUc9NT7eb-GqQInUqvrMT4XX7UvjINEAcggTA9fl_wtDC5eY3gLGXYLsJhOhPAa3IyIrr5_co0NtAUOOHWwpRU_OzdLcvp_B6SMGWciTA3eJk/s400/5.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5272947475850553426" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Digit-extraction Method&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Using digit extraction selected digits are extracted from the key and used as the address.&lt;/li&gt;&lt;/ul&gt;Example:&lt;ul&gt;&lt;li&gt;Using six-digit employee number to hash to a three digit address (000-999), we could select the first, third, and fourth digits( from the left) and use them as the address.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;The keys are:&lt;br /&gt;379452  -&gt;    394&lt;br /&gt;121267   -&gt;  112&lt;br /&gt;378845  -&gt;   388&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Folding Method&lt;/span&gt;&lt;br /&gt;Two folding methods are used they are:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Fold shift&lt;/li&gt;&lt;li&gt;Fold boundary&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Fold Shift&lt;/span&gt;&lt;br /&gt;In fold shift the key value is divided into parts whose size matches the size of the required address. Then the left and right parts are shifted and added with the middle part.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Fold boundary&lt;/span&gt;&lt;br /&gt;In fold boundary the left and right numbers are folded on a fixed boundary between them and the center number. The two outside values are thus reversed.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Example:&lt;/u&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGI1Ev3fpV_4hwii-Igoedk7Tf-I9kxvWL59TeU3TzPHiElzqiO6Ccfc6I1qKoxID_G8j2yO6nL-2TgGA1l4sMz2U9hNGKc-1H4ue4HONxrpAPh8tbwgnP7cSq-3S8zIlWDoTFN1buKs0/s1600-h/6.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 202px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGI1Ev3fpV_4hwii-Igoedk7Tf-I9kxvWL59TeU3TzPHiElzqiO6Ccfc6I1qKoxID_G8j2yO6nL-2TgGA1l4sMz2U9hNGKc-1H4ue4HONxrpAPh8tbwgnP7cSq-3S8zIlWDoTFN1buKs0/s400/6.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5272981108287460898" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Midsquare Method&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;In midsquare hashing the key is squared and the address is selected from the middle of the square number.&lt;/li&gt;&lt;li&gt;Limitation is the size of the key.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;u&gt;Example:&lt;/u&gt;&lt;br /&gt;9452&lt;sup&gt;2&lt;/sup&gt; = 89340304: address is 3403&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Rotation Method&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Rotation method is generally not used by itself but rather is incorporated in combination with other hashing methods.&lt;/li&gt;&lt;li&gt;It is most useful when keys are assigned serially.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Example:&lt;/u&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQr0hsk7CvgcrT9bXjV5tls0HUDLLTi6C9HLT6nZJ5n1ijoVOH6NcdHvGyK5XQbeCLKzqOhNgHF_Qdty6CrrPuAzYdFsYfHvEDcjhhW3N1TLUH4xMBIAwAS9quAMOIeC5iBSFGC9HYJk8/s1600-h/7.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 141px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQr0hsk7CvgcrT9bXjV5tls0HUDLLTi6C9HLT6nZJ5n1ijoVOH6NcdHvGyK5XQbeCLKzqOhNgHF_Qdty6CrrPuAzYdFsYfHvEDcjhhW3N1TLUH4xMBIAwAS9quAMOIeC5iBSFGC9HYJk8/s400/7.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5272991780348157234" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Pseudorandom Hasing&lt;/span&gt;&lt;br /&gt;A common random-number generator is shown below.&lt;br /&gt;y= ax + c&lt;br /&gt;To use the pseudorandom-number generator as a hashing method, we set x to the key, multiply it by the coefficient a, and then add the constant c. The result is then divided by the list size, with the remainder being the hashed address.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Example:&lt;/u&gt;&lt;br /&gt;Y= ((17 * 121267) + 7) modulo 307&lt;br /&gt;Y= (2061539 + 7)  modulo 307&lt;br /&gt;Y= 2061546&lt;br /&gt;Y=41&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Hashing Algorithm&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBP8pamMC9UqXlmDg8yS6u2s42OtHR4Q7jihZckImfkST177am4-DhG0sfw3sddYNuieXG3NkHXZbZK8imAcsNS-pD_KzQgHk09Mk_pZpQq6nmtOpNG-2gGbySWbPhQ_BTcdEx8IiFmU0/s1600-h/8.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 276px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBP8pamMC9UqXlmDg8yS6u2s42OtHR4Q7jihZckImfkST177am4-DhG0sfw3sddYNuieXG3NkHXZbZK8imAcsNS-pD_KzQgHk09Mk_pZpQq6nmtOpNG-2gGbySWbPhQ_BTcdEx8IiFmU0/s400/8.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5272992748514993794" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Collision Resolution&lt;/span&gt; &lt;br /&gt;There are several methods for handling collisions, each of them independent of the hashing algorithm. &lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Collision resolution methods&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLImeo9eQqE8-hNVom0rH7gY9Fl8dkHS7vF8SAExfF-sPV0MHOihL-D4syIHRZUM9YPA8tN6ZWIo94osFD-ryhHfslx5lzADRjSiq6p29fwsYqI4oTYzdHSp1VG0ZenqTX4imTOmxGN5g/s1600-h/9.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 284px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLImeo9eQqE8-hNVom0rH7gY9Fl8dkHS7vF8SAExfF-sPV0MHOihL-D4syIHRZUM9YPA8tN6ZWIo94osFD-ryhHfslx5lzADRjSiq6p29fwsYqI4oTYzdHSp1VG0ZenqTX4imTOmxGN5g/s400/9.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5272993632949481618" /&gt;&lt;/a&gt;&lt;br /&gt;In this section I will discuss the Linear probe and Quadratic probe&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Linear Probe&lt;/span&gt; &lt;br /&gt;In a linear probe when data cannot be stored in the home address we resolve the collision by adding 1 to the current address.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Example for Linear Probe collision Resolution&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzM5MMrjys95imBpnADdIBRYHtFvD9KY-BrI_AyeEMvkOjL8dQuY8MYGQVSFOtA0kech44A5o6w-aJv547uf9DvBkFqg8p3rztZdb6Qraf4AtPwIfCDDx-eTbfsLJ2IFk7HIQ97aoKyLg/s1600-h/10.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 264px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzM5MMrjys95imBpnADdIBRYHtFvD9KY-BrI_AyeEMvkOjL8dQuY8MYGQVSFOtA0kech44A5o6w-aJv547uf9DvBkFqg8p3rztZdb6Qraf4AtPwIfCDDx-eTbfsLJ2IFk7HIQ97aoKyLg/s400/10.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5272994594467035682" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Quadratic Collision Resolution&lt;/span&gt;&lt;br /&gt;In the quadratic probe, the increment is the collision probe number squared. Thus for the first probe we add 1&lt;sup&gt;2&lt;/sup&gt;, for the second collision probe we add 2&lt;sup&gt;2&lt;/sup&gt; etc.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyJPxdT_nmq8hu1LsSjcx6NS4iB4vnint3Hyxwm9XSI18xLF5q5sIQsu6GAX0ysylnfgqxe9e6Uh9bXkHT48InKSa6ZFZGeESbby2ldOJCmWyRnq0cb1D9J7OfKMpgv5utxoXkPozqtSY/s1600-h/11.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 242px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyJPxdT_nmq8hu1LsSjcx6NS4iB4vnint3Hyxwm9XSI18xLF5q5sIQsu6GAX0ysylnfgqxe9e6Uh9bXkHT48InKSa6ZFZGeESbby2ldOJCmWyRnq0cb1D9J7OfKMpgv5utxoXkPozqtSY/s400/11.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5272995214973663938" /&gt;&lt;/a&gt;</description><link>http://note-for-it.blogspot.com/2008/11/algorithms-data-structures-hashing.html</link><author>noreply@blogger.com (Han)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhcWvaAFR1WrqBXbyjN9MDDlmyKWG8e_ebJtlha5yXTR9koz8b8ZqrqoNg065pErBBQwkiS65HVtTiJVWBhAI4SnS_z1KJR_j3xHRvnjD2rECNXkDnYowC_JYZjfBx_XXgOTv-j5eaaF7g/s72-c/1.png" width="72"/><thr:total>12</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2768273740072947120.post-4149483529590248729</guid><pubDate>Wed, 19 Nov 2008 08:30:00 +0000</pubDate><atom:updated>2008-11-19T01:08:10.364-08:00</atom:updated><title>Algorithms &amp; Data Structures - Algorithm analysis</title><description>&lt;span style="font-weight:bold;"&gt;OBJECTIVES&lt;/span&gt;&lt;br /&gt;&lt;li&gt;Understands what is algorithms analysis&lt;/li&gt;&lt;li&gt;Identify the reasons for conducting algorithm analysis&lt;/li&gt;&lt;li&gt;Obtain the basic mathematics background&lt;/li&gt;&lt;li&gt;Able to estimate the running time&lt;/li&gt;&lt;li&gt;Understand the efficiency of algorithm&lt;/li&gt;&lt;li&gt;Able to select the best algorithm for a program &lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;What is algorithm analysis?&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The process of estimating the running time of an algorithm.&lt;/li&gt;&lt;li&gt;Used to find the best algorithm to solve the problem.&lt;/li&gt;&lt;li&gt;The role of algorithm analysis is to estimate the algorithm resource consumption.&lt;/li&gt;&lt;li&gt;Algorithm analysis estimates the exact time and memory space required by an algorithm to solve a certain problem.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Algorithm Analysis --&gt; Algorithm Efficiency&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;less code&lt;/li&gt;&lt;li&gt;economic&lt;/li&gt;&lt;li&gt;less workload&lt;/li&gt;&lt;li&gt;easy to maintain&lt;/li&gt;&lt;li&gt;Faster to execute and get the result (speed)&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;How to conduct?&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Algorithm Analysis&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Empirical Analysis&lt;/li&gt;&lt;ul&gt;&lt;li&gt;based on experimental Analysis&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Theoretical Analysis&lt;/li&gt;&lt;ul&gt;&lt;li&gt;based on mathematical Analysis&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Theoretical Analysis&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Use mathematical calculation&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Big–O notation&lt;/li&gt;&lt;li&gt;Omega (Ω) notation&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Big-O notation&lt;/span&gt;&lt;br /&gt;&lt;li&gt;Expressed as O(n)   - On the Order of n&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Instruction speed in loop&lt;/span&gt;&lt;br /&gt;&lt;table border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Program Structure&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Big-O&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Iterations&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Estimate Time&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Logarithmic&lt;/td&gt;&lt;td&gt;O(log n)&lt;/td&gt;&lt;td&gt;14&lt;/td&gt;&lt;td&gt;Microseconds&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Linear&lt;/td&gt;&lt;td&gt;O(n)&lt;/td&gt;&lt;td&gt;10000&lt;/td&gt;&lt;td&gt;0.1 second&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Linear Logarithmic&lt;/td&gt;&lt;td&gt;O(n(log n))&lt;/td&gt;&lt;td&gt;140000&lt;/td&gt;&lt;td&gt;2 seconds&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Quadratic&lt;/td&gt;&lt;td&gt;O(n&lt;sup&gt;2&lt;/sup&gt;)&lt;/td&gt;&lt;td&gt;10000&lt;sup&gt;2&lt;/sup&gt;&lt;/td&gt;&lt;td&gt;15 – 20 min&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;ALGORITHM EFFICIENCY&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Comparing two different algorithms that solve the same problem&lt;/li&gt;&lt;li&gt;Algorithmics : “the systematic study of the fundamental techniques used to design and analyze efficient algorithms”&lt;/li&gt;&lt;li&gt;Linear loops&lt;/li&gt;&lt;li&gt;Logarithmic loops&lt;/li&gt;&lt;li&gt;Linear logarithmic&lt;/li&gt;&lt;li&gt;Dependent Quadratic&lt;/li&gt;&lt;li&gt;Quadratic&lt;/li&gt;&lt;li&gt;Best Case&lt;/li&gt;&lt;li&gt;Worst Case&lt;/li&gt;&lt;li&gt;Average case&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;CALCULATION Big O&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;State the equation&lt;/li&gt;&lt;li&gt;Remove the coefficients&lt;/li&gt;&lt;li&gt;Keep the largest factor&lt;/li&gt;&lt;li&gt;State in Big O notation&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhF7qFhvHnOODn1y2xykr3Zr-n0T4D6kBDUM6JXFeH59JMqTl6h3iPhrFcWvy_x5WSt2XYzwgpsYbZpKlEciRVteDzi0lWC4QH3V8e20XIhT99A7nnDt0KYfQFq80PS1MEA-AuBAoA3X9M/s1600-h/1.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 308px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhF7qFhvHnOODn1y2xykr3Zr-n0T4D6kBDUM6JXFeH59JMqTl6h3iPhrFcWvy_x5WSt2XYzwgpsYbZpKlEciRVteDzi0lWC4QH3V8e20XIhT99A7nnDt0KYfQFq80PS1MEA-AuBAoA3X9M/s400/1.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5270291044185935538" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Exercises&lt;/span&gt;&lt;br /&gt;&lt;u&gt;Calculate the running time for this segment program&lt;/u&gt;&lt;br /&gt;int i, j, p, q;&lt;br /&gt;p = 5;&lt;br /&gt;for (i = 0; i &lt; 15; i++)&lt;br /&gt;p = p + i;&lt;br /&gt;q = 0;&lt;br /&gt;for (j = 0; j &lt; 60; j++)&lt;br /&gt;q = q + j;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Calculate the running time for this segment program&lt;/u&gt;&lt;br /&gt;int i, j, p, q;&lt;br /&gt;p = 5;&lt;br /&gt;for (i = 0; i &lt; 30; i++)&lt;br /&gt;for (j = 0; j &lt; 60; j++)&lt;br /&gt;p = p + i + j;&lt;br /&gt;for (i = 0; i &lt; 60; i++)&lt;br /&gt;q = q * i + p;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Order the following function by growth rate:&lt;/u&gt;&lt;br /&gt;n log2(n), n + n2, 24, n, √n, log2 n, 2n&lt;br /&gt;Indicate which function grow at the same rate.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Calculate the running time for this segment program&lt;/u&gt;&lt;br /&gt;Fun(int x)&lt;br /&gt;{&lt;br /&gt;if (x &lt; 1)&lt;br /&gt;return 1;&lt;br /&gt;else&lt;br /&gt;return (Fun(x - 2));&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Calculate the running time&lt;/u&gt;&lt;br /&gt;&lt;li&gt;log(n) * n + 2n + log (n)&lt;/li&gt;&lt;li&gt;3n4 + 8n3/5 + 4&lt;/li&gt;&lt;li&gt;6 log(n) + 9n&lt;/li&gt;&lt;li&gt;3 n5/2 +  n log(n)&lt;/li&gt;&lt;li&gt;6 log(n) + 7 log(n)&lt;/li&gt;</description><link>http://note-for-it.blogspot.com/2008/11/algorithms-data-structures-algorithm.html</link><author>noreply@blogger.com (Han)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhF7qFhvHnOODn1y2xykr3Zr-n0T4D6kBDUM6JXFeH59JMqTl6h3iPhrFcWvy_x5WSt2XYzwgpsYbZpKlEciRVteDzi0lWC4QH3V8e20XIhT99A7nnDt0KYfQFq80PS1MEA-AuBAoA3X9M/s72-c/1.png" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2768273740072947120.post-9193174166944163148</guid><pubDate>Tue, 18 Nov 2008 15:31:00 +0000</pubDate><atom:updated>2008-11-18T08:10:11.434-08:00</atom:updated><title>Algorithms &amp; Data Structures - Data Structures And Operations</title><description>&lt;strong&gt;Objectives&lt;/strong&gt;&lt;br /&gt;At the end of the class learner will be able to answer the :&lt;br /&gt;&lt;li&gt;Insert, delete, and process nodes in an AVL tree&lt;/li&gt;&lt;li&gt;Understand the operation of the AVL tree ADT&lt;/li&gt;&lt;li&gt;Write application programs using an AVL tree&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;AVL Tree&lt;/h2&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Introduction&lt;/span&gt; &lt;br /&gt;In 1962, two Russian mathematicians, G.M Adelson-velskii and E.M Landis, created the balanced binary tree structure that is named after them-the AVL tree.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Definition&lt;/span&gt;&lt;br /&gt;An AVL tree is a height-balanced binary search tree.&lt;br /&gt;&lt;br /&gt;AVL Balance Factor:&lt;br /&gt;The formula to calculate the height-balance is :&lt;br /&gt;│ H&lt;sub&gt;L&lt;/sub&gt; – H&lt;sub&gt;R&lt;/sub&gt; │ &lt;=1 Where H&lt;sub&gt;L&lt;/sub&gt; is the height of the left subtree and H&lt;sub&gt;R&lt;/sub&gt; is the height of the right subtree&lt;br /&gt;&lt;br /&gt;The balance factor for any node in an AVL tree must be +1, or -1,we will use the descriptive identifiers&lt;br /&gt;&lt;ul&gt;&lt;li&gt;LH for left hight(+1) to indicate that the left subtree is higher than the right subtree.&lt;/li&gt;&lt;li&gt;EH for even high(0) to indicate that the subtrees are the same height, and&lt;/li&gt;&lt;li&gt;RH for right high(-1) to indicate that the left subtree is shorter than the right subtree.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Example of an AVL tree&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUA8RvDxoF28HHdJ3mkJctjzFOES_66vxh-Fsncm1d2ieLRlAgkP_WY8ML8Q85q-f6flMoYK5XXbrM-7BcCeI_m3EKhyAvJ_aLAu4hpYvihdNSpvIjgbF-gkTa7Cn1ntzQy_l3MgIBxW0/s1600-h/1.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 231px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUA8RvDxoF28HHdJ3mkJctjzFOES_66vxh-Fsncm1d2ieLRlAgkP_WY8ML8Q85q-f6flMoYK5XXbrM-7BcCeI_m3EKhyAvJ_aLAu4hpYvihdNSpvIjgbF-gkTa7Cn1ntzQy_l3MgIBxW0/s400/1.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5270024679460309106" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Balancing Trees&lt;/span&gt;&lt;br /&gt;Whenever we insert or delete a node the tree is unbalance. To make it balance we have to perform the rotations either to the left or to the right.&lt;br /&gt;&lt;br /&gt;There are four cases required to rebalance the tree they are:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Left of Left&lt;/li&gt;&lt;li&gt;Right of Right&lt;/li&gt;&lt;li&gt;Right of left&lt;/li&gt;&lt;li&gt;Left of right&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOtGeIIVRBt_y3vvxfHt99T4cAYun81lsPSgcdMpvPgvvNwxPEUPBQPyYuy6lv5QWymafKv8uufvdkEo6cpjbg_vUmPOUg70mL6Z99vgImDmosf4tuh-9zZUkOIH5mdZ71qZJVk77ix0o/s1600-h/2.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 366px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOtGeIIVRBt_y3vvxfHt99T4cAYun81lsPSgcdMpvPgvvNwxPEUPBQPyYuy6lv5QWymafKv8uufvdkEo6cpjbg_vUmPOUg70mL6Z99vgImDmosf4tuh-9zZUkOIH5mdZ71qZJVk77ix0o/s400/2.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5270025628054038066" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg31uDq-PL-SVGYJr0dOdT_m5dzSJOpbac35GRQx0sFwvt4C-U84k8OJHPX8SR9gxZeGjcf2WETfEG-s1sKYUPdP25K9L5kk3GFi8Z6DTGKKu1Aev_dJleB31NAJxn4NPMKK6zhQtn5Juc/s1600-h/3.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 366px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg31uDq-PL-SVGYJr0dOdT_m5dzSJOpbac35GRQx0sFwvt4C-U84k8OJHPX8SR9gxZeGjcf2WETfEG-s1sKYUPdP25K9L5kk3GFi8Z6DTGKKu1Aev_dJleB31NAJxn4NPMKK6zhQtn5Juc/s400/3.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5270025762371620242" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;div style="text-align: center;"&gt;Left of Left - Single Rotation right:&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJQCmnQRyYSmbV2pA1uUGNOWdfnwXkkgPlQS_WM5wH89bZlnpN7Nb4xdM-zCHiEtpgvPTN_FekEc_HimJeddxmL8YX1RDOXAPGJcHv-wXshQz91NB6a33zGZR_hD09i5JpPc1KMIukYwE/s1600-h/4.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 250px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJQCmnQRyYSmbV2pA1uUGNOWdfnwXkkgPlQS_WM5wH89bZlnpN7Nb4xdM-zCHiEtpgvPTN_FekEc_HimJeddxmL8YX1RDOXAPGJcHv-wXshQz91NB6a33zGZR_hD09i5JpPc1KMIukYwE/s400/4.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5270025933268387922" /&gt;&lt;/a&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;Right of Right - Single Rotation Left:&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1nfskRZXNUsYkRtZUqcbVvP7CSOV7fgMIKrFLtcO993vMS3pBdef68zncxRBwYzT6LNsXxpPL-NyoxikSsEbPO93AOaTkB-8qqQLl9dbc0nI4qFVuDrX26j-jvau32ytd72ocg6TWBKk/s1600-h/5.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 243px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1nfskRZXNUsYkRtZUqcbVvP7CSOV7fgMIKrFLtcO993vMS3pBdef68zncxRBwYzT6LNsXxpPL-NyoxikSsEbPO93AOaTkB-8qqQLl9dbc0nI4qFVuDrX26j-jvau32ytd72ocg6TWBKk/s400/5.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5270026256595927426" /&gt;&lt;/a&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;Right of Left - Double Rotation Right:&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhD3PKVCCZ-TpoYvXrhNz3awQrXCgvMBADPVssE7ZGszrl0x54f6u_bFXlzTssl221RZY311otHD0Z0nwahVnUXBUpllhjF6JCIhzcwsPm6MZpBwJWN4u4jzPvQ42avJdzTc6bzznjyMJA/s1600-h/6.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 321px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhD3PKVCCZ-TpoYvXrhNz3awQrXCgvMBADPVssE7ZGszrl0x54f6u_bFXlzTssl221RZY311otHD0Z0nwahVnUXBUpllhjF6JCIhzcwsPm6MZpBwJWN4u4jzPvQ42avJdzTc6bzznjyMJA/s400/6.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5270026403465521154" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: center;"&gt;Left of Right - Double Rotation Right:&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9HjiVgP2FrjF49hSTPW8lVanLn-_036SIt7TZmAkmnaPdBc0MvFnGCDUM6R1vS0QIKtzUtuYrl_DhyphenhyphenLWHEqP0kdTnCAHNbq616-DQ0U28rj30JGcGsK2D9qHdX3GGXasSn4ua_zSnBco/s1600-h/7.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 283px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9HjiVgP2FrjF49hSTPW8lVanLn-_036SIt7TZmAkmnaPdBc0MvFnGCDUM6R1vS0QIKtzUtuYrl_DhyphenhyphenLWHEqP0kdTnCAHNbq616-DQ0U28rj30JGcGsK2D9qHdX3GGXasSn4ua_zSnBco/s400/7.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5270026535312874402" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;AVL tree Implementation&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;AVL Tree Insert:&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfL8THliztlZj_SC90EtC0EE3DJUgpcj6Bb-dXsYFuEyVGBJ4ykF35pmdlw0Swzwd98KrBD-7LS0LlZv59nt4t2zkJynvu9y0Pv-M0-8JuVMrUkgrWSoc_lTZR_KnChgvfKSIyaqTa3vE/s1600-h/8.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 285px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfL8THliztlZj_SC90EtC0EE3DJUgpcj6Bb-dXsYFuEyVGBJ4ykF35pmdlw0Swzwd98KrBD-7LS0LlZv59nt4t2zkJynvu9y0Pv-M0-8JuVMrUkgrWSoc_lTZR_KnChgvfKSIyaqTa3vE/s400/8.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5270027220927306546" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;AVL Tree Left Balance:&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiIQWF5IRo-g1ddKkbgU3ugZzboQMCozZo5VBNEkmPuZpi-SqEqO85nxzRhQZjcob8SCFreWLGnv6bn1d7ue7HZKA5YQa-R8MfoVOQ_VGbMIpE6sqzbLUSCX_UWo8t3-I4-1itELj7qxh8/s1600-h/9.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 145px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiIQWF5IRo-g1ddKkbgU3ugZzboQMCozZo5VBNEkmPuZpi-SqEqO85nxzRhQZjcob8SCFreWLGnv6bn1d7ue7HZKA5YQa-R8MfoVOQ_VGbMIpE6sqzbLUSCX_UWo8t3-I4-1itELj7qxh8/s400/9.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5270028032653666594" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;Rotate AVL Tree Right and Left:&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDdor-HFhJhBDgsxTOpjZJDv0jmyzZrnMSLeUO7xu1e5s6VowhWhWAbDYfcdAMwCW50X4utBTtUBOyzMvAupJWZ88BHW9CxegoE8tzQHJ1Jx69hnAC286HVTpj3P_p81O9NPUN6wuGkHs/s1600-h/10.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 243px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDdor-HFhJhBDgsxTOpjZJDv0jmyzZrnMSLeUO7xu1e5s6VowhWhWAbDYfcdAMwCW50X4utBTtUBOyzMvAupJWZ88BHW9CxegoE8tzQHJ1Jx69hnAC286HVTpj3P_p81O9NPUN6wuGkHs/s400/10.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5270028204458737250" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;AVL Tree delete:&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCBwKF6l0qgP09QFhl0Y8sFORrsYLWinmg-rqbNkqrya2eW00vVWA9xdAtek_afApK9AsXH5wxtmpaSVg1FKllZvTGT-PC5QtS4gsqD41AfJUPE86YGrtddg8d5RZG15IyHq7xIzBbaqA/s1600-h/11.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 279px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCBwKF6l0qgP09QFhl0Y8sFORrsYLWinmg-rqbNkqrya2eW00vVWA9xdAtek_afApK9AsXH5wxtmpaSVg1FKllZvTGT-PC5QtS4gsqD41AfJUPE86YGrtddg8d5RZG15IyHq7xIzBbaqA/s400/11.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5270028408153316642" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-8LC0udb5SKyXqfq3nJKvBPSR_372tVTt6kTmutpjZtQKU7eCD9y1otMwsncveww56gM-INwKgbpDD4MOrsn-AK06ufgKpPeCuWhQnfAkQepT5D16L0RkUFQrf2vYRmAV7Jb5A-Nqngs/s1600-h/12.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 366px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-8LC0udb5SKyXqfq3nJKvBPSR_372tVTt6kTmutpjZtQKU7eCD9y1otMwsncveww56gM-INwKgbpDD4MOrsn-AK06ufgKpPeCuWhQnfAkQepT5D16L0RkUFQrf2vYRmAV7Jb5A-Nqngs/s400/12.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5270028609356096866" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPPsijt7gSeILjPffMrz3S9nDHf5VCpng2Zly_CD_BkqQ4Ctin3TihnGXHzVQjmyt5KpTQ1ZW3yKhHz1W3mYejytyPZwaDc0-r9UEVM6mA5TZjicMODODywj-lihGVZ7vYThl5g03bWqw/s1600-h/13.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 366px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPPsijt7gSeILjPffMrz3S9nDHf5VCpng2Zly_CD_BkqQ4Ctin3TihnGXHzVQjmyt5KpTQ1ZW3yKhHz1W3mYejytyPZwaDc0-r9UEVM6mA5TZjicMODODywj-lihGVZ7vYThl5g03bWqw/s400/13.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5270028815821911202" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;</description><link>http://note-for-it.blogspot.com/2008/11/algorithms-data-structures-data.html</link><author>noreply@blogger.com (Han)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUA8RvDxoF28HHdJ3mkJctjzFOES_66vxh-Fsncm1d2ieLRlAgkP_WY8ML8Q85q-f6flMoYK5XXbrM-7BcCeI_m3EKhyAvJ_aLAu4hpYvihdNSpvIjgbF-gkTa7Cn1ntzQy_l3MgIBxW0/s72-c/1.png" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2768273740072947120.post-8956676456005841464</guid><pubDate>Thu, 13 Nov 2008 05:18:00 +0000</pubDate><atom:updated>2008-11-13T11:25:02.833-08:00</atom:updated><title>Algorithms &amp; Data Structures - AVL TREE</title><description>&lt;ul&gt;&lt;li&gt;A balance binary search tree.&lt;/li&gt;&lt;li&gt;The best search time, that is O(log N) search times&lt;/li&gt;&lt;br /&gt;&lt;li&gt;An AVL tree is defined to be a well-balanced binary search tree in which each of its nodes has the AVL property.&lt;/li&gt;&lt;li&gt;The AVL property is that the heights of the left and right sub-trees of a node are either equal or if they differ only by 1&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYCiw9Zqc_DyQbauX76F3i-4kVF4lgU2bKmZdffDPuXNgOXVQxPAS33BAcM3Z63PAeRsW1ugeo7Swar8kfcPkdIXaGlfQEW7Sgy5b4H5-M055j2ndKW30Y24lHaXckRWhDdCuvOvwTo3c/s1600-h/Picture2.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 269px; height: 263px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYCiw9Zqc_DyQbauX76F3i-4kVF4lgU2bKmZdffDPuXNgOXVQxPAS33BAcM3Z63PAeRsW1ugeo7Swar8kfcPkdIXaGlfQEW7Sgy5b4H5-M055j2ndKW30Y24lHaXckRWhDdCuvOvwTo3c/s400/Picture2.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5268003090110349346" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh3mDPsOm95yxIrBNWu3HoImlDSPGslFZLzqUgCgwohHA_uZ1Dywy1fNuSGHtzstf2osboCo4vE-TrHOEV3sp9dJPTOTqmzUUOFifHmOwNzxP7L6VIFLLLVr6cz7eYVrr7svy8txlOPK78/s1600-h/Picture1.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 272px; height: 263px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh3mDPsOm95yxIrBNWu3HoImlDSPGslFZLzqUgCgwohHA_uZ1Dywy1fNuSGHtzstf2osboCo4vE-TrHOEV3sp9dJPTOTqmzUUOFifHmOwNzxP7L6VIFLLLVr6cz7eYVrr7svy8txlOPK78/s400/Picture1.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5268003088189092754" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Keeping the Tree Balance&lt;/strong&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;the height of the right subtree and height of the left subtree for any node cannot differ by more than one.&lt;/li&gt;&lt;li&gt;This process is usually done through rotation.&lt;/li&gt;&lt;br /&gt;Diagram 1&lt;br /&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxLJCzWxS-odq4EvJ0pt1Sq8m8-80BLUkx7vQ-63-aotIiG3wJBWSjI9G5acVsLwLW9QdwgK5U-ChHbQzeE_tDET7ZKsAM6yByfQGwZ0mEi7FDGcDv6dHDIVYnz2mMfw0FHRO4NiKveiE/s1600-h/Picture3.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 155px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxLJCzWxS-odq4EvJ0pt1Sq8m8-80BLUkx7vQ-63-aotIiG3wJBWSjI9G5acVsLwLW9QdwgK5U-ChHbQzeE_tDET7ZKsAM6yByfQGwZ0mEi7FDGcDv6dHDIVYnz2mMfw0FHRO4NiKveiE/s400/Picture3.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5268003836522255410" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;li&gt;A single counter clockwise rotate will balance it.&lt;/li&gt;&lt;li&gt;s_ right_rotate()  - because it involves the right subtree.&lt;/li&gt;&lt;br /&gt;Diagram 2&lt;br /&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhULFPe0bmfOpTNNQp1imtSGSwkL8U-Ny_WKbLYvXdQW0ihtlpRbzXja0F2YDenWj0z2Z-SOlfmaK3UkXv0Cau32JIeUboJj1aap98k1rj6xKk9WOup07A-ybeEdhzhtqfr_gIRa10QxsA/s1600-h/Picture4.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 157px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhULFPe0bmfOpTNNQp1imtSGSwkL8U-Ny_WKbLYvXdQW0ihtlpRbzXja0F2YDenWj0z2Z-SOlfmaK3UkXv0Cau32JIeUboJj1aap98k1rj6xKk9WOup07A-ybeEdhzhtqfr_gIRa10QxsA/s400/Picture4.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5268004173923369074" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;li&gt;A single counter clockwise rotate will balance it.&lt;/li&gt;&lt;li&gt;s_ left_rotate()  - because it involves the left subtree.&lt;/li&gt;&lt;br /&gt;Diagram 3&lt;br /&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgn_EeXvAziKWLirWive6JDg1h9XgDQ2jbAzuy8zFefbUVbxKKsy1DjPWigqhMnIV9hK1PrHmY6CbA0173TGg6yAPumG0Qt5SXND4pwduqorJedcSZk5ep0Qox5qLZHUWSAVzrPRCjpK04/s1600-h/Picture5.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 167px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgn_EeXvAziKWLirWive6JDg1h9XgDQ2jbAzuy8zFefbUVbxKKsy1DjPWigqhMnIV9hK1PrHmY6CbA0173TGg6yAPumG0Qt5SXND4pwduqorJedcSZk5ep0Qox5qLZHUWSAVzrPRCjpK04/s400/Picture5.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5268004544164230866" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;li&gt;A double clockwise rotate will balance it.&lt;/li&gt;&lt;ul&gt;&lt;li&gt;1st - single clockwise rotation with the parent of the inserted node (this produces the tree in diagram 1)&lt;/li&gt;&lt;li&gt;2nd - single counter clockwise rotation on the root&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;d_ right_rotate()  - because it involves the right subtree.&lt;/li&gt;&lt;br /&gt;Diagram 4&lt;br /&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWBbtsd_rYVrErCNfyTWQv1sofm3hDFprtIjZxnz1atu5bBeA0Ea_lScgyV8lBYnpGi_3qU7xcOF2nFeU6DHt1wt0ADkHl11NPjenPwC5-nH-xamR7iM97y4nZfHHz8uH6QrSocqUYTjo/s1600-h/Picture6.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 190px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWBbtsd_rYVrErCNfyTWQv1sofm3hDFprtIjZxnz1atu5bBeA0Ea_lScgyV8lBYnpGi_3qU7xcOF2nFeU6DHt1wt0ADkHl11NPjenPwC5-nH-xamR7iM97y4nZfHHz8uH6QrSocqUYTjo/s400/Picture6.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5268005003206493314" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;li&gt;A double clockwise rotate will balance it.&lt;/li&gt;&lt;ul&gt;&lt;li&gt;1st - single counter clockwise rotation with the parent of the inserted node (this produces the tree in diagram 2)&lt;/li&gt;&lt;li&gt;2nd - single clockwise rotation with the root.&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;d_ left_rotate() - because it involves the left subtree.&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Example:&lt;/strong&gt;&lt;br /&gt;Given these data: build an AVL tree.&lt;br /&gt;12 , 10  , 3 , 23 , 11,  14  ,  2 , 4 , 1&lt;br /&gt;Click the picture below to see the answer! ^_^&lt;br /&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDzT163Z6iaZMg4fprWrQG6SypBR3-wZLZQy8V0sHNE3Jjfz8YHCZasvkeme9SxgSrddRAkUQadWP81al62U3QnVcPnakAFqg95gom9LOh0oGvj0uyFtC0fEcd0aSa-9Kr9sLxyseuOiY/s1600-h/Picture7.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 288px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDzT163Z6iaZMg4fprWrQG6SypBR3-wZLZQy8V0sHNE3Jjfz8YHCZasvkeme9SxgSrddRAkUQadWP81al62U3QnVcPnakAFqg95gom9LOh0oGvj0uyFtC0fEcd0aSa-9Kr9sLxyseuOiY/s400/Picture7.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5268006002176580066" /&gt;&lt;/a&gt;</description><link>http://note-for-it.blogspot.com/2008/11/algorithms-data-structures-avl-tree.html</link><author>noreply@blogger.com (Han)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYCiw9Zqc_DyQbauX76F3i-4kVF4lgU2bKmZdffDPuXNgOXVQxPAS33BAcM3Z63PAeRsW1ugeo7Swar8kfcPkdIXaGlfQEW7Sgy5b4H5-M055j2ndKW30Y24lHaXckRWhDdCuvOvwTo3c/s72-c/Picture2.png" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2768273740072947120.post-6010375912055229719</guid><pubDate>Sun, 02 Nov 2008 13:14:00 +0000</pubDate><atom:updated>2008-11-04T10:29:49.316-08:00</atom:updated><title>Algorithms &amp; Data Structures - Sorting 1 and Analysis</title><description>&lt;ul&gt;&lt;li&gt;Sort problem is obvious to all&lt;/li&gt;&lt;li&gt;Several distinct algorithms to solve it&lt;/li&gt;&lt;li&gt;Algorithms use different data structures&lt;/li&gt;&lt;li&gt;Algorithm performance varies widely&lt;/li&gt;&lt;li&gt;See Chapters 1, 2, and 7&lt;/li&gt;&lt;ul&gt;&lt;li&gt;For now, skip ShellSort and QuickSort&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Bubble Sort&lt;/li&gt;&lt;li&gt;Insertion Sort&lt;/li&gt;&lt;li&gt;Merge Sort&lt;/li&gt;&lt;li&gt;And analysis as we go…&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;BubbleSort&lt;/strong&gt;&lt;br /&gt;procedure BubbleSort( var A : InputArray;  N : int);&lt;br /&gt;var&lt;br /&gt;j, P : integer;&lt;br /&gt;begin&lt;br /&gt;for P := N to 2 by -1 do begin&lt;br /&gt;for j := 1 to P - 1 do begin&lt;br /&gt;   if A[ j ] &gt; A[ j + 1 ] then&lt;br /&gt;       Swap( A[ j ], A[ j + 1 ] );&lt;br /&gt;end;   {for}&lt;br /&gt;end;    {for}&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Template BubbleSort class&lt;/strong&gt;&lt;br /&gt;template&amp;#60;class T&gt; class CBubbleSort {&lt;br /&gt;public:&lt;br /&gt;  void Sort(T *A, int N)&lt;br /&gt;  {&lt;br /&gt;      for(int P = N-1;  P &gt;= 1;  P--)&lt;br /&gt;      {&lt;br /&gt;          for(int j = 0;  j&lt;＝P-1;  j++)             {                 if(A[j + 1] &lt; t =" A[j"&gt;Utilizing it…&lt;br /&gt;&lt;br /&gt;// Data …&lt;br /&gt;vector&amp;#60;double&gt; data;&lt;br /&gt;&lt;br /&gt;// fill in the data…&lt;br /&gt;&lt;br /&gt;// Instantiate the sort object…&lt;br /&gt;CBubbleSort&amp;#60;double&gt; sort;&lt;br /&gt;&lt;br /&gt;sort.Sort(&amp;amp;data[0], data.size());&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Running time for BubbleSort&lt;/strong&gt;&lt;br /&gt;How many times does c,d get executed?&lt;br /&gt;  for P := N to 2 by -1 do begin&lt;br /&gt;        for j := 1 to P - 1 do begin&lt;br /&gt;             if A[ j ] &gt; A[ j + 1 ] then&lt;br /&gt;                 Swap( A[ j ], A[ j + 1 ] );&lt;br /&gt;        end;   {for}&lt;br /&gt;   end;    {for}&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Running time for BubbleSort&lt;/strong&gt;&lt;br /&gt;How many times does c,d get executed?&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8JTVgZpOhWnHYhuafzQ3rQU96kBeioGtlY-ZI5e6vjYGWjgntJUXyQYEAlzijj2fn0iqsfy3A3B0jKRtTO27GGtZrva7E8z4-qi6eWEtijbhF6JNby__TdMKF0ZtdRAgEtnVIeKn8peI/s1600-h/formula.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 79px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8JTVgZpOhWnHYhuafzQ3rQU96kBeioGtlY-ZI5e6vjYGWjgntJUXyQYEAlzijj2fn0iqsfy3A3B0jKRtTO27GGtZrva7E8z4-qi6eWEtijbhF6JNby__TdMKF0ZtdRAgEtnVIeKn8peI/s400/formula.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5264053436615093666" /&gt;&lt;/a&gt;&lt;br /&gt;So, we could say:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOszkW0PoI3eYvRGt8LSVzexTRux1_q1y6mmmZGwHHvolpUSm-FIo0xShooSGBmy0TwxY0ZbubkXYPUd4HhyDTVCbmZBwXC2Ofn33Li3OnJBw6KNkHZL-GBsJGSQmpEewBX0wyn8P7m04/s1600-h/formula2.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 111px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOszkW0PoI3eYvRGt8LSVzexTRux1_q1y6mmmZGwHHvolpUSm-FIo0xShooSGBmy0TwxY0ZbubkXYPUd4HhyDTVCbmZBwXC2Ofn33Li3OnJBw6KNkHZL-GBsJGSQmpEewBX0wyn8P7m04/s400/formula2.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5264053687051884722" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Big-Oh notation&lt;/strong&gt;&lt;br /&gt;Definition:  T(N)=O( f(N) ) if there are positive constants c and n0 such that T(N) &lt;= cf(N) when N &gt;= n0&lt;br /&gt;Another notation:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQ9zdTt4D2-_9wPtQ1STkeLZSE1S-1HcYriL0b_XazkW7jrq7ljVht0K6cunYFs9qcBSjJLMo1smYeiiNbq4EqC2V4OjnmH2xpZ7kO6CNB3n6b_VRz1exxYc0100Klg8SkAGZXeV8_l40/s1600-h/formula3.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 46px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQ9zdTt4D2-_9wPtQ1STkeLZSE1S-1HcYriL0b_XazkW7jrq7ljVht0K6cunYFs9qcBSjJLMo1smYeiiNbq4EqC2V4OjnmH2xpZ7kO6CNB3n6b_VRz1exxYc0100Klg8SkAGZXeV8_l40/s400/formula3.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5264054075598739858" /&gt;&lt;/a&gt;&lt;br /&gt;Intuitively what does this mean?&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Asymptotic Upper Bound&lt;/strong&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSYG7xwuhlrxeUzBtXPQfJZUx0hmPBu4ejjLBHd9A_OiEeC90HMRU0axG3xJzo3OO_VqBKqfHlzBq3RWVFGv1welTjMX8kFGFtyrxsOCjS48nFdaCRGzPV5LN2c2_ekOy99U3MeGqGb-c/s1600-h/10.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 291px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSYG7xwuhlrxeUzBtXPQfJZUx0hmPBu4ejjLBHd9A_OiEeC90HMRU0axG3xJzo3OO_VqBKqfHlzBq3RWVFGv1welTjMX8kFGFtyrxsOCjS48nFdaCRGzPV5LN2c2_ekOy99U3MeGqGb-c/s400/10.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5264112552734798050" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Example of Asymptotic Upper Bound&lt;/strong&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEikxCPYuZh452Jmm6NH6aQAr9FW2Y6kTeAZ6k3ZRxO4bv4PtwhLVbr9lYUVVK5NfFiIuPnc6qUoyRfQrkdgbm1GDfSoY-jXgKMnokfbCbgAe9NBGv-Rxk6NRqvb4QB3oEBIRgIZ7xAogts/s1600-h/11.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 291px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEikxCPYuZh452Jmm6NH6aQAr9FW2Y6kTeAZ6k3ZRxO4bv4PtwhLVbr9lYUVVK5NfFiIuPnc6qUoyRfQrkdgbm1GDfSoY-jXgKMnokfbCbgAe9NBGv-Rxk6NRqvb4QB3oEBIRgIZ7xAogts/s400/11.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5264112746325947154" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpk0vT30nkSLY8JcNwk2jKgvMq4UiQAqBul0OYsMZa6_h-LaX46zvkALVk8O6RuEvG7AYNX-vX3fD3eAMueLq4LKR3UpvxeQMaYUPPwU27paBEtRz0B9JG6E0UL15naO_znDERpDuIaEY/s1600-h/1.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 285px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpk0vT30nkSLY8JcNwk2jKgvMq4UiQAqBul0OYsMZa6_h-LaX46zvkALVk8O6RuEvG7AYNX-vX3fD3eAMueLq4LKR3UpvxeQMaYUPPwU27paBEtRz0B9JG6E0UL15naO_znDERpDuIaEY/s400/1.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5264114888450693394" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Is BubbleSort O(N2)?&lt;/strong&gt;&lt;br /&gt;&lt;li&gt;Can we find a c and n0?:&lt;/li&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgv0W8pnlpTd_750FJ06fJjAO_0cSViNDK5rlJwu4JNQvmcUfx0cAfGvNXv4GOuUft26l8cmkS1JgzhLm5rDDI7zQgsYYm37ORtgt59OcpbmwQDUr6QzNJeX22LqoIaivXbhUvOHOpn88g/s1600-h/formula5.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 67px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgv0W8pnlpTd_750FJ06fJjAO_0cSViNDK5rlJwu4JNQvmcUfx0cAfGvNXv4GOuUft26l8cmkS1JgzhLm5rDDI7zQgsYYm37ORtgt59OcpbmwQDUr6QzNJeX22LqoIaivXbhUvOHOpn88g/s400/formula5.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5264055563091224354" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgRZKa5Ouz63ZMusRmdGaFZr5ME-9K7XO03At4x4q4LtVYByem6HR0B0W8OrZx-Dx7ct2OBjmv9SdNQBpj1-E44He8bftoM2unN4kU8s0c5FOjaGIdpF41HHHAuZkVSRp04Z3PZRFYs-nk/s1600-h/1.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 319px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgRZKa5Ouz63ZMusRmdGaFZr5ME-9K7XO03At4x4q4LtVYByem6HR0B0W8OrZx-Dx7ct2OBjmv9SdNQBpj1-E44He8bftoM2unN4kU8s0c5FOjaGIdpF41HHHAuZkVSRp04Z3PZRFYs-nk/s400/1.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5264133243450168914" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Some rules to simplify things…&lt;/strong&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Loops:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Running time is body time times # iterations&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Nested loops:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Analysis from the inside out…&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Statements:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Assume time of 1 each&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Unless the statement is an algorithm&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;li&gt;So, we could say:&lt;/li&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgbEsTz2fbWpd7Sv26tTCbOVK2QoqJKN8vYHdWQMD-AOvS4u-i8OHAwKfSxqwuzXob7beO_IA3XC8xDfDFY1FSy6MWszpdiYBwv-kdRFRBfBCxjjXHHXTl4C3Zy4sBjlECrnVyVFBfF0AY/s1600-h/formula9.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 173px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgbEsTz2fbWpd7Sv26tTCbOVK2QoqJKN8vYHdWQMD-AOvS4u-i8OHAwKfSxqwuzXob7beO_IA3XC8xDfDFY1FSy6MWszpdiYBwv-kdRFRBfBCxjjXHHXTl4C3Zy4sBjlECrnVyVFBfF0AY/s400/formula9.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5264057243394803474" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEikxvF-SmdpU2JeYUAycrFrGfUXpq51g0Ngf5qEU41HejlJ8qu596Zt6e3lV3ZDhUTWT1DZlc1prm1umGfjhyHyW0xMxj8Fl-Y4oDrk1OheVW2rpEhiKcCH4sMxf6QgAPklxXx5dWTLJH8/s1600-h/formula8.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 163px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEikxvF-SmdpU2JeYUAycrFrGfUXpq51g0Ngf5qEU41HejlJ8qu596Zt6e3lV3ZDhUTWT1DZlc1prm1umGfjhyHyW0xMxj8Fl-Y4oDrk1OheVW2rpEhiKcCH4sMxf6QgAPklxXx5dWTLJH8/s400/formula8.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5264057237864894242" /&gt;&lt;/a&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Usage&lt;/strong&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBTV6TQnzTV4826CpZY3LLt-s0ZFnymhw9pMtL_VTsE0zIxkyrBw35koKT0bxmCD3FCi2Fz2Q7CL4H-XCG00v9Yvlqd1QN7V6VBOaFmpOk4poizXqHepI4NAfadrHMnuqcHJhtVlGnVpM/s1600-h/formula10.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 220px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBTV6TQnzTV4826CpZY3LLt-s0ZFnymhw9pMtL_VTsE0zIxkyrBw35koKT0bxmCD3FCi2Fz2Q7CL4H-XCG00v9Yvlqd1QN7V6VBOaFmpOk4poizXqHepI4NAfadrHMnuqcHJhtVlGnVpM/s400/formula10.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5264057831882037010" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Exercise in Big O-notation&lt;/strong&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiuSY1L90luRByhdN3ri7xSlTCfUiPH9JA746ARP-Mz27c-D7k3SotBfBrsJmDCEHpDEqF2XZIio_zR6JVV3bmD5Y_ZlPbeVuBUOue7euG9bEyDiPYcOw7fnUcntd6MNBoDgD1Tng0pilQ/s1600-h/picture11.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 220px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiuSY1L90luRByhdN3ri7xSlTCfUiPH9JA746ARP-Mz27c-D7k3SotBfBrsJmDCEHpDEqF2XZIio_zR6JVV3bmD5Y_ZlPbeVuBUOue7euG9bEyDiPYcOw7fnUcntd6MNBoDgD1Tng0pilQ/s400/picture11.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5264111667834690114" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;What’s the minimum time?&lt;/strong&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh59ZNzNQBlWiwfcEQ0iBE6saS2VtbuNZMfISXH6ksP9W4nbivK_t8KmaGnn01uZFzXV99WMc_zeC1vAPfhwVlBKdxkJK-UO_VDlMqgSl6RUIYGp7KXfwKXedAOjDU82UH1ZiNXRnju4yQ/s1600-h/picture13.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 239px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh59ZNzNQBlWiwfcEQ0iBE6saS2VtbuNZMfISXH6ksP9W4nbivK_t8KmaGnn01uZFzXV99WMc_zeC1vAPfhwVlBKdxkJK-UO_VDlMqgSl6RUIYGp7KXfwKXedAOjDU82UH1ZiNXRnju4yQ/s400/picture13.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5264113310523252226" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Omega notation&lt;/strong&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhh6KEqCtO1els-fKVvek8C0e11HbgSDsx-WctremrdgQ9uWO_8sxXeOQJC9EbyFGj74F7QR__Zr1Qke3-5PTHkZ-oHkmDwwGlwFSoqQI7LtEEJ1I-vtspnT_Ah-fIcc1Oy73ztbwtcJmI/s1600-h/1.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 119px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhh6KEqCtO1els-fKVvek8C0e11HbgSDsx-WctremrdgQ9uWO_8sxXeOQJC9EbyFGj74F7QR__Zr1Qke3-5PTHkZ-oHkmDwwGlwFSoqQI7LtEEJ1I-vtspnT_Ah-fIcc1Oy73ztbwtcJmI/s400/1.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5264134495431805426" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiB622PsV-HX6XHjGc8jTJzifrh6Eh0oxlLsnXw9v0AM5C0La_mJL2zIX9mPpJyQC8xkPuIFdZG0WEj4pfw6ZJD6YudUNdLxI5NzX_yDajbcig_5cBuKmTJIRy4uORdcp-rcbiYmQpsfpI/s1600-h/2.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 218px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiB622PsV-HX6XHjGc8jTJzifrh6Eh0oxlLsnXw9v0AM5C0La_mJL2zIX9mPpJyQC8xkPuIFdZG0WEj4pfw6ZJD6YudUNdLxI5NzX_yDajbcig_5cBuKmTJIRy4uORdcp-rcbiYmQpsfpI/s400/2.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5264135200643384258" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGdfMo_y8EM7w_FLuhm04ufrRw3HZncXLoZHXnVg8IjAT-_0SWdz1qPhFn4WM8jewP7c_aAduVJWgjfOg_7ve8P0DhaFHv8FRM9wSIspZgVWo4rwrQuHU6x7n2sUB1A-30aHY76q_t8Ew/s1600-h/1.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 304px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGdfMo_y8EM7w_FLuhm04ufrRw3HZncXLoZHXnVg8IjAT-_0SWdz1qPhFn4WM8jewP7c_aAduVJWgjfOg_7ve8P0DhaFHv8FRM9wSIspZgVWo4rwrQuHU6x7n2sUB1A-30aHY76q_t8Ew/s400/1.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5264115279473310034" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhiBKPYCM_3nCJzPIxuqPnAizURagAxpLJn6Y7MvkRXuuIXB1q51sNt8gPIvu492dxMZRjqtSIGEuqPUdPd5gzTmH2JsKJWS6SKOUEnjBTWk92Cy4EKjA4v-t5FB8OcXrCS0zpbZAkko6E/s1600-h/2.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 285px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhiBKPYCM_3nCJzPIxuqPnAizURagAxpLJn6Y7MvkRXuuIXB1q51sNt8gPIvu492dxMZRjqtSIGEuqPUdPd5gzTmH2JsKJWS6SKOUEnjBTWk92Cy4EKjA4v-t5FB8OcXrCS0zpbZAkko6E/s400/2.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5264115517890775666" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Asymptotic Lower Bound&lt;/strong&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvTDxAE-0oLvmlWgK5Mv36T3aHUfOuYiY7b-aGKlAacdfREkkfYfPEvz7w6tTgZH3eAY90o64zLSD08UH3vTmGvdny5mGYh7RMd0Oe7C5En3DeibRVm4dwpqsdj-Wlqj_TrSUg_-D5x7E/s1600-h/3.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 246px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvTDxAE-0oLvmlWgK5Mv36T3aHUfOuYiY7b-aGKlAacdfREkkfYfPEvz7w6tTgZH3eAY90o64zLSD08UH3vTmGvdny5mGYh7RMd0Oe7C5En3DeibRVm4dwpqsdj-Wlqj_TrSUg_-D5x7E/s400/3.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5264115932986783010" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;What these tell us&lt;/strong&gt;&lt;br /&gt;&lt;li&gt;O(f(N)) - Upper bound on running timg&lt;/li&gt;&lt;li&gt;Ω(g(N)) - Lower bound on running time&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;What about the “constants”?&lt;/strong&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Algorithm 1: O(N), actual time is:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;T(N)=1,000,000N&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Algorithm 2: O(N2), actual time is:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;T(N)=10N2&lt;/li&gt;&lt;/li&gt;&lt;li&gt;When is algorithm 2 faster?&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Why do we care?&lt;/strong&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;After all, computers just keep getting faster, don’t they?&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Is today’s slow algorithm acceptable tomorrow?&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Algorithm 1:  O(N2)&lt;/li&gt;&lt;li&gt;Algorithm 2:  O(N)&lt;/li&gt;&lt;ul&gt;&lt;li&gt;If your computer is suddenly 10 times faster, can you handle 10 times as much data in the same time?&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Faster Computer or Algorithm?&lt;/strong&gt;&lt;br /&gt;√ What happens when we buy a computer 10 times faster? &lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhaPWnJy2jTGaMkdSnH1gA0tI3PGUP66_5NVYtK04KKo_XdUlWBzPQZg4X96KUcNsPqvgJySrBL1HZoTQ7fpW1qynZ_PqfGQ5f8NlYRLB19DX1aR99rdARg12mZ3YtX_tOKVse98zeST1A/s1600-h/table.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 151px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhaPWnJy2jTGaMkdSnH1gA0tI3PGUP66_5NVYtK04KKo_XdUlWBzPQZg4X96KUcNsPqvgJySrBL1HZoTQ7fpW1qynZ_PqfGQ5f8NlYRLB19DX1aR99rdARg12mZ3YtX_tOKVse98zeST1A/s400/table.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5264120351968555586" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Constant running time&lt;/strong&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHNzHXUnw14xCPUulMNOIVfpFAglkbPkAeMhm-R65sgkI0Kk3n-YB_xMlKVX0TrBF9IsJgBMB_nw_LqIriW28HomB78864kaDGujRsB6_zxdQK6uolcw34TEJ1wXx4HErIYwdK68W_woU/s1600-h/1.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 233px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHNzHXUnw14xCPUulMNOIVfpFAglkbPkAeMhm-R65sgkI0Kk3n-YB_xMlKVX0TrBF9IsJgBMB_nw_LqIriW28HomB78864kaDGujRsB6_zxdQK6uolcw34TEJ1wXx4HErIYwdK68W_woU/s400/1.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5264121485398196562" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Theta Notation&lt;/strong&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0_syJLBp_QNeQzlJ9fmOXFnOJPe0VqPs4e1TP0UtVkayPsStgx8s1J64xN8VMs5YaKzIC0BuNOP7sUZg-dPx_pWxcGOLv6eI0u4uYnNX6-iEaiASjrmF7hXWxrbU4NQYCAU-JSj6Jjz0/s1600-h/theta+notation.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 220px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0_syJLBp_QNeQzlJ9fmOXFnOJPe0VqPs4e1TP0UtVkayPsStgx8s1J64xN8VMs5YaKzIC0BuNOP7sUZg-dPx_pWxcGOLv6eI0u4uYnNX6-iEaiASjrmF7hXWxrbU4NQYCAU-JSj6Jjz0/s400/theta+notation.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5264121909578699570" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Big O, Omega, Theta&lt;/strong&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEguhuJ5L-BZkJJc8j9v5QueV24dknfFOcsK3BS0tRVifEgOLNjNxbHVkRyz8CxE7HIrkG00ixW5afJ1ip-zga0CcCI5aGbMdN1P_9A9OMBQr_7PwefGlGoBfg7NpLVqaIRfPl1t8vqWjXQ/s1600-h/1.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 301px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEguhuJ5L-BZkJJc8j9v5QueV24dknfFOcsK3BS0tRVifEgOLNjNxbHVkRyz8CxE7HIrkG00ixW5afJ1ip-zga0CcCI5aGbMdN1P_9A9OMBQr_7PwefGlGoBfg7NpLVqaIRfPl1t8vqWjXQ/s400/1.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5264122248727508130" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;In general:&lt;/strong&gt;&lt;br /&gt;O is used to denote the upper bound of the complexity&lt;br /&gt;Ω is used to denote the lower bound of the complexity&lt;br /&gt;Ø is used to denote the tight bound of the complexity&lt;br /&gt;&lt;br /&gt;Example, the general sorting problem has the time complexity Ω(nlogn). Any sorting based on compare-interchange takes c.nlogn time for some constant c.&lt;br /&gt;&lt;br /&gt;Sorting problem has a time complexity O(nlogn)&lt;br /&gt;(since there is an algorithm which sorts in O(nlogn) time)&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Aside:  Can we make this faster in some cases?&lt;/strong&gt;&lt;br /&gt;procedure BubbleSort( var A : InputArray;  N : int);&lt;br /&gt;    var&lt;br /&gt;        j, P : integer;&lt;br /&gt;begin&lt;br /&gt;    for P := N to 2 by -1 do begin&lt;br /&gt;        for j := 1 to P - 1 do begin&lt;br /&gt;            if A[ j ] &gt; A[ j + 1 ] then&lt;br /&gt;                Swap( A[ j ], A[ j + 1 ] );&lt;br /&gt;        end;   {for}&lt;br /&gt;    end;    {for}&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Insertion Sort&lt;/strong&gt;&lt;br /&gt;procedure InsertionSort( var A : InputArray;  N : integer);&lt;br /&gt;    var  j, P : integer;   Tmp : InputType;&lt;br /&gt;begin&lt;br /&gt;    for P := 2 to N do begin&lt;br /&gt;        j := P; &lt;br /&gt;        Tmp := A[ P ];&lt;br /&gt;&lt;br /&gt;        while j &gt; 1 and Tmp &lt; A[ j - 1 ] do begin&lt;br /&gt;            A[ j ] := A[ j - 1 ];&lt;br /&gt;            j := j - 1;&lt;br /&gt;        end;  {while}&lt;br /&gt;        A[ j ] := Tmp;&lt;br /&gt;    end;    {for}&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Worst case analysis&lt;/strong&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;N outer loops&lt;/li&gt;&lt;li&gt;Each item moved maximum distance&lt;/li&gt;&lt;ul&gt;&lt;li&gt;For item i, that would be i-1, right?&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEheEGa5xdQgDOQzzX_hcv3CRlomCY7keaiGvtvGf4WDqxu_CzaTrK7cQVOHI-N2nHASswTmk7XZv10oW0vlf3r9bZN1F3c9iC3pgFgJ46o9bnPNnWFT5W_NpS5aXVXCgFXu-VGRR-7PejU/s1600-h/1.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 57px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEheEGa5xdQgDOQzzX_hcv3CRlomCY7keaiGvtvGf4WDqxu_CzaTrK7cQVOHI-N2nHASswTmk7XZv10oW0vlf3r9bZN1F3c9iC3pgFgJ46o9bnPNnWFT5W_NpS5aXVXCgFXu-VGRR-7PejU/s400/1.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5264125082065569666" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Best case analysis&lt;/strong&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;N outer loops&lt;/li&gt;&lt;li&gt;Each is not moved at all&lt;/li&gt;&lt;ul&gt;&lt;li&gt;For item i, 0 moves, which is constant time.&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEja8jHCdUxyP7DC2Jk6hocZuMxdKcPQ5u5ZHeZUAwWrQnLZ5DDYe_DC_kEey4_3U_yAifvceW7VdDqVzmdb9FE8_a10iw9EFpulBckcPS3CTgkP-VPr0a5jLpqscaiz5vbCeeA-r76PNY4/s1600-h/1.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 70px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEja8jHCdUxyP7DC2Jk6hocZuMxdKcPQ5u5ZHeZUAwWrQnLZ5DDYe_DC_kEey4_3U_yAifvceW7VdDqVzmdb9FE8_a10iw9EFpulBckcPS3CTgkP-VPr0a5jLpqscaiz5vbCeeA-r76PNY4/s400/1.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5264125597498555538" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Worst-Case and Average-Case Analysis&lt;/strong&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Worst-case analysis&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Big O, the upper bound, of the running time of any input of size N.&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Average-case analysis&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Some algorithms are fast in practice. &lt;/li&gt;&lt;li&gt;The analysis is usually much harder.&lt;/li&gt;&lt;li&gt;Need to assume that all input are equally likely.&lt;/li&gt;&lt;li&gt;Sometimes, it is not obvious what is the average.&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;InsertionSort Average Case&lt;/strong&gt;&lt;br /&gt;&lt;li&gt;On average, how much would you have to move a item to sort the list?&lt;/li&gt;&lt;li&gt;For item i, the minimum is 0 and the maximum is i-1.  So, the average is i/2&lt;/li&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNYIjiNM6PDKVXSq2mWNLyENClw8zc4fv7jhPNSMdXTSZMe-js0YEBwvjJCvzDKx4VYQmp3YvicJUFaZVcRY7fBaP2F-3pE0hUN_ISa34Aag3bZ0WDBjvq9W4xv6bpIMbY-Q0bGAufBT4/s1600-h/1.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 117px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNYIjiNM6PDKVXSq2mWNLyENClw8zc4fv7jhPNSMdXTSZMe-js0YEBwvjJCvzDKx4VYQmp3YvicJUFaZVcRY7fBaP2F-3pE0hUN_ISa34Aag3bZ0WDBjvq9W4xv6bpIMbY-Q0bGAufBT4/s400/1.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5264126609499117186" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Insertion Sort Average Case More formal solution&lt;/strong&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;For sorting, we assume randomly ordered data.&lt;/li&gt;&lt;li&gt;Inversions:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;An inversion in an array of numbers is any ordered pair (i, j) having the property that&lt;/li&gt;&lt;li&gt;i &lt; j and A[i] &gt; A[j]&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;How many inversions in this list:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;12, 17, 5, 7, 21, 1, 8&lt;/li&gt;&lt;li&gt;How many are possible altogether?&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Inversions&lt;/strong&gt;&lt;br /&gt;√ The maximum inversions for a list of size N is N(N-1)/2&lt;br /&gt;√ Theorem:  The average number of inversions in an array of N distinct numbers is N(N-1)/4&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Average case for exchanging adjacent elements&lt;/strong&gt;&lt;br /&gt;√ When we exchange adjacent elements we remove exactly one inversion&lt;br /&gt;&lt;ul&gt;&lt;li&gt;12, 17, 5, 7, 21, 1, 8&lt;/li&gt;&lt;/ul&gt;√ We have to remove on average N(N-1)/4 inversions=Ω(N2)&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Mergesort&lt;/strong&gt;&lt;br /&gt;procedure MergeSort( var A : InputArray;  N : int);&lt;br /&gt;Begin&lt;br /&gt; MSort(A, 1, N)&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;Procedure MSort(var A : InputArray;  F, L : int);&lt;br /&gt; var q: int;&lt;br /&gt;Begin&lt;br /&gt; if F &lt; L then begin&lt;br /&gt;  q := (F + L) / 2&lt;br /&gt;  MSort(A, F, Q);&lt;br /&gt;  MSort(A, Q+1, L);&lt;br /&gt;&lt;br /&gt;  Merge(A, F, Q, L);&lt;br /&gt; end;&lt;br /&gt;End;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNS5UBH9aL-zyRPllqvg87W-mgbbDpI9pijmwaw7KJvV7NJBTHhxwiYsJFZ_11AjVQ6GTG8_2ZMCBHl_W7yh4dibnOf0FBoC7a5op0V8oTBmHbT38ltcGuFsYrTDDu_yvdo328cdowBCY/s1600-h/1.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 250px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNS5UBH9aL-zyRPllqvg87W-mgbbDpI9pijmwaw7KJvV7NJBTHhxwiYsJFZ_11AjVQ6GTG8_2ZMCBHl_W7yh4dibnOf0FBoC7a5op0V8oTBmHbT38ltcGuFsYrTDDu_yvdo328cdowBCY/s400/1.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5264128426744223906" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;How long does merge take?&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIodGTdOHZzxwLHlMIUJD7okBRAhHHAXu6JwNSBzZROIECuh85jQwG0CCnooGPnR9fMAij26sF2GiFzr_Yx2GAaVui0pNVdt1Y3QoI7em6wnX8mh-S6-hRVlNxtNjZs-r4TJ0PVLFcC-o/s1600-h/1.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 220px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIodGTdOHZzxwLHlMIUJD7okBRAhHHAXu6JwNSBzZROIECuh85jQwG0CCnooGPnR9fMAij26sF2GiFzr_Yx2GAaVui0pNVdt1Y3QoI7em6wnX8mh-S6-hRVlNxtNjZs-r4TJ0PVLFcC-o/s400/1.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5264128769737835186" /&gt;&lt;/a&gt;&lt;ul&gt;&lt;li&gt;One of the earliest sorting sorting algorithms, invented by John von Neumann in 1945.&lt;/li&gt;&lt;li&gt;Mergesort is Divide-and-conquer Algorithm&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Given an instance of the problem to be solved, split this into several, smaller, sub-instances (of the same problem) independently solve each of the sub-instances and then combine the sub-instance solutions so as to yield a solution for the original instance.&lt;/li&gt;&lt;li&gt;The problem is divided into smaller problems and solved recursively.&lt;/li&gt;&lt;li&gt;Quicksort and heapsort are also such algorithms&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5-LMCLYPsf0V6Vj0AfpHf-It9WPeM0f-rfzyalinL86vuHeAto90frGIdKVsGh-sp8rCXwfDeAy7kYEidWTl_5dK2zPg3138aNJc0nOYZjhEvMOMnyB3xs2qg5DIGmVBYkRQ1cGpEW7c/s1600-h/1.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 308px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5-LMCLYPsf0V6Vj0AfpHf-It9WPeM0f-rfzyalinL86vuHeAto90frGIdKVsGh-sp8rCXwfDeAy7kYEidWTl_5dK2zPg3138aNJc0nOYZjhEvMOMnyB3xs2qg5DIGmVBYkRQ1cGpEW7c/s400/1.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5264129625463737506" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Running Time&lt;/strong&gt;&lt;br /&gt;&lt;li&gt;T(1)=O(1)&lt;/li&gt;&lt;li&gt;T(N)=T(N/2)+T(N/2)+O(N)&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Mergesort&lt;/strong&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;O(n log n) worst-case running time&lt;/li&gt;&lt;li&gt;Same ops done regardless of input order&lt;/li&gt;&lt;li&gt;Mergesort is Divide-and-conquer Algorithm&lt;/li&gt;&lt;li&gt;Copying to and from temporary array&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Extra memory requirement&lt;/li&gt;&lt;li&gt;Extra work&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQmAsG0wkr5BlBnjIgNjSv2qTtDb8Tw8NI-TfIJBkgxwTBaIFp1SX_OBaGPrfjVC0dEk1jCsp6v09m1B1TbOimkBIMBi-RzUgPPc8pOrQITyevBC8mFFqoSixvPZ3P6mK0UC2PPp4-vSw/s1600-h/1.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 246px; height: 400px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQmAsG0wkr5BlBnjIgNjSv2qTtDb8Tw8NI-TfIJBkgxwTBaIFp1SX_OBaGPrfjVC0dEk1jCsp6v09m1B1TbOimkBIMBi-RzUgPPc8pOrQITyevBC8mFFqoSixvPZ3P6mK0UC2PPp4-vSw/s400/1.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5264130399623921890" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi17MYdRIpTlMIQmMOvblhKvmMDRv_5ybGOHnxdko71aL2yekyUw5IQYs_Xp1B7VkKmO0S4srslCa432sIi4kKgSbv3MJCzIhIfxG3zVLEzi6lEiSeL5FuQEyqujdF4TWhCr9Jp8n_BNtQ/s1600-h/1.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 368px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi17MYdRIpTlMIQmMOvblhKvmMDRv_5ybGOHnxdko71aL2yekyUw5IQYs_Xp1B7VkKmO0S4srslCa432sIi4kKgSbv3MJCzIhIfxG3zVLEzi6lEiSeL5FuQEyqujdF4TWhCr9Jp8n_BNtQ/s400/1.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5264130676403584306" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOPrf1-7NpmUSVZV5WVN93TPUybXFj5YXoE9YfBombBl-NHRKg2eY9eX3pGym_X2OhkC2tY_BchENCQLo4vkRGwTRgej9mvDZZsMQeJEAuwZIzf8Ojd63DF2fymJiSzUzNPtsUhUyLV08/s1600-h/1.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 284px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOPrf1-7NpmUSVZV5WVN93TPUybXFj5YXoE9YfBombBl-NHRKg2eY9eX3pGym_X2OhkC2tY_BchENCQLo4vkRGwTRgej9mvDZZsMQeJEAuwZIzf8Ojd63DF2fymJiSzUzNPtsUhUyLV08/s400/1.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5264131004677460722" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhODgFx-oTD2BCUo4T0at7zs9l3KaOFPzwo5_4ZxepfHviq8NfcvP3stKkoDHJXDk_nGGEH1gqwU-m_koccGuyJFYdBkJVdq-zBBT6YG3uQ1rPcwOHBCt8GVWCghIuZjyeVPBhyphenhyphenNpzKu8E/s1600-h/1.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 287px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhODgFx-oTD2BCUo4T0at7zs9l3KaOFPzwo5_4ZxepfHviq8NfcvP3stKkoDHJXDk_nGGEH1gqwU-m_koccGuyJFYdBkJVdq-zBBT6YG3uQ1rPcwOHBCt8GVWCghIuZjyeVPBhyphenhyphenNpzKu8E/s400/1.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5264131329825012834" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4bS6kZYVPLk-vqBk2OVZROuzbjY4Yr-ReV8ecFVyizpd8i2-7VSyX3UFoLN-QMbBb0xZtV8jU4W1jyWU0D0vpuc3c_F9ieOhKIo6kPSm_tvSglA5bqojHJK-mh6bLIyajTkjBVbLwaLY/s1600-h/1.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 299px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4bS6kZYVPLk-vqBk2OVZROuzbjY4Yr-ReV8ecFVyizpd8i2-7VSyX3UFoLN-QMbBb0xZtV8jU4W1jyWU0D0vpuc3c_F9ieOhKIo6kPSm_tvSglA5bqojHJK-mh6bLIyajTkjBVbLwaLY/s400/1.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5264131743736922642" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAOkLGp7LTR1UwwQeFPIOjkb0OFjE0wG2Z-YJkV7_09QofN4R8RW5pK1nrqXJYqmn5ZJEU9bkKTtG0AXqJB7iOTSizNN7gLQaOMr42XBQPOAb2baDgPaFgK3dE5SNuyFKKvg9CmjBy_8I/s1600-h/1.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 163px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAOkLGp7LTR1UwwQeFPIOjkb0OFjE0wG2Z-YJkV7_09QofN4R8RW5pK1nrqXJYqmn5ZJEU9bkKTtG0AXqJB7iOTSizNN7gLQaOMr42XBQPOAb2baDgPaFgK3dE5SNuyFKKvg9CmjBy_8I/s400/1.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5264132198433184402" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7EH8RllLAGIKesrN1cGcT0JmvuTpUBr3JvzaxkRfl_caC3TTmWFE5alKpplcZZPYuTOLWnV5V6xsdlW_EeJV6jCkQTcqeIn7-UJHS1wYFObIdaaFuJZh1cs7_zRflB10hjIzZMVJlHbY/s1600-h/1.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 311px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7EH8RllLAGIKesrN1cGcT0JmvuTpUBr3JvzaxkRfl_caC3TTmWFE5alKpplcZZPYuTOLWnV5V6xsdlW_EeJV6jCkQTcqeIn7-UJHS1wYFObIdaaFuJZh1cs7_zRflB10hjIzZMVJlHbY/s400/1.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5264132513814950546" /&gt;&lt;/a&gt;</description><link>http://note-for-it.blogspot.com/2008/11/algorithms-data-structures-sorting-1.html</link><author>noreply@blogger.com (Han)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8JTVgZpOhWnHYhuafzQ3rQU96kBeioGtlY-ZI5e6vjYGWjgntJUXyQYEAlzijj2fn0iqsfy3A3B0jKRtTO27GGtZrva7E8z4-qi6eWEtijbhF6JNby__TdMKF0ZtdRAgEtnVIeKn8peI/s72-c/formula.png" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2768273740072947120.post-6468135239933826604</guid><pubDate>Sun, 02 Nov 2008 10:54:00 +0000</pubDate><atom:updated>2008-11-02T02:56:01.726-08:00</atom:updated><title>Into the wild: AdSense for feeds</title><description>We've been hinting at this for awhile, but it's finally time to spill the beans: Starting next week, we'll be rolling out AdSense for feeds to a small group of publishers, in anticipation of a full launch to all FeedBurner and AdSense publishers "coming soon". If you start seeing "Ads by Google" on an ad in a feed somewhere, that'd be us.&lt;br /&gt;&lt;br /&gt;So what will this mean for you? Well, publishers already in the FeedBurner Ad Network will continue to see premium CPM ads directly sold onto their content, but with the added bonus of contextually targeted ads that will fill up the remainder of their inventory. That means you get the best of both worlds: a dedicated Google sales force that knows how and why to sell onto your content, with the added revenue that full back-fill coverage provides. And with AdSense, you'll know that your back-filled ads are using the strongest contextual ad engine, ensuring the most relevant and profitable ads are delivered to your subscribers. And yes, ads are also sold via Google's AdWords program.&lt;br /&gt;&lt;br /&gt;For publishers who are not yet placing ads in their feeds, any publisher who meets the requirements to join the AdSense program will also be able to use AdSense for feeds. You will be able to manage your feed ad units directly from AdSense Setup tab, and track performance right on the AdSense Report tab. You can slice, dice, mix, or mash your tracking across feed units and content units, or keep them totally separate. You're in control. You can still control the frequency and rules around when ads appear in your feeds, without having to mess with templates on your content management system.&lt;br /&gt;&lt;br /&gt;You might be wondering what you'll need to do to use AdSense for feeds. You'll learn more about the details when we fully launch, but here are the basics: you will need to sign up for AdSense if you haven't already, and you will want to set up your AdSense channels for "placement targeting" in order to make sure that advertisers can target your syndicated content specifically. As a publisher, you will remain be in control of the campaigns that are targeted at your feed by harnessing the power of Ad Review Center.&lt;br /&gt;&lt;br /&gt;And, this is just the beginning of the chocolaty goodness that will come from ongoing integration effort with Google - there are many more "things" and "stuff" yet to come, as we mentioned a few weeks back.&lt;br /&gt;&lt;br /&gt;We'll give you the full details on AdSense for feeds, including supported formats, how to sign up, etc., etc. when we're ready for the full launch to all publishers. In the meantime, FeedBurner feeds will continue to be fed as usual, and we'll be reaching out to select publishers individually to try out AdSense for feeds.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://blogs.feedburner.com/feedburner/archives/2008/05/into_the_wild_adsense_for_feed_1.php"&gt;http://blogs.feedburner.com/feedburner/archives/2008/05/into_the_wild_adsense_for_feed_1.php&lt;/a&gt;</description><link>http://note-for-it.blogspot.com/2008/11/into-wild-adsense-for-feeds.html</link><author>noreply@blogger.com (Han)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2768273740072947120.post-2400171490106343254</guid><pubDate>Wed, 15 Oct 2008 17:02:00 +0000</pubDate><atom:updated>2008-10-15T10:37:42.887-07:00</atom:updated><title>Multimedia Storage Devices</title><description>&lt;strong&gt;&lt;u&gt;Multimedia storage and retrieval&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;Magnetic media technology&lt;br /&gt;&lt;li&gt;hard disk&lt;/li&gt;&lt;li&gt;Redundant Array of Inexpensive Disks (RAID)&lt;/li&gt;&lt;br /&gt;Optical media technology&lt;br /&gt;&lt;li&gt;large capacity but slower access near-line mass-storage (jukeboxes)&lt;/li&gt;&lt;li&gt;CD-ROM&lt;/li&gt;&lt;li&gt;CD-WORM&lt;/li&gt;&lt;li&gt;CD-WR (erasable CD)&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;CD-ROM&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;CD-ROM - Compact Disc Read Only memory.&lt;br /&gt;CD-ROM has several advantages and few disadvantages.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Advantages:&lt;/u&gt;&lt;br /&gt;a) CD-ROM can hold about 650 megabytes of data, the equivalent of thousands of floppy disc.&lt;br /&gt;b) CD-ROM are not damaged by magnetic fields or the x-rays.&lt;br /&gt;c) The data on a CD-ROM can be accessed much faster than on a tape.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Disadvantage :&lt;/u&gt;&lt;br /&gt;CD-ROM are 10 to 20 times slower than hard discs.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;CD-ROM Capacity&lt;/u&gt;&lt;br /&gt;The capacity of a CD-ROM depends on the drive. &lt;br /&gt;Almost all CD-ROM drives will handle up to 620 megabytes without any problems. &lt;br /&gt;Many newer drives can read discs with over 700 megabytes.&lt;br /&gt;The fundamental unit of data on a CD-ROM is the sector. &lt;br /&gt;Every CD-ROM is composed of a given amount of a sector.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Example of Storage in Multimedia&lt;/u&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;CD-RW Rewritable Compact Discs&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Rewritable-- Data can be Overwritten Directly and Repeatedly &lt;/li&gt;&lt;li&gt;650MB Storage Capacity/74 Minutes Digital Audio Recording Time&lt;/li&gt; &lt;li&gt;Playable on All CD-ROM Drives With MultiRead Functionality &lt;/li&gt;&lt;/ul&gt;&lt;li&gt;CD-R Recordable Compact Discs; &lt;/li&gt;&lt;ul&gt;&lt;li&gt;Offer high-density storage and superior audio recording.&lt;/li&gt;&lt;li&gt;650MB/ 74 Min. Capacity&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;RAID Technology&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;RAID  = Redundant Array of Inexpensive Disks. &lt;br /&gt;&lt;li&gt;RAID is a new technology that provides a potential alternative to mass storage combined with high throughput and reliability.&lt;/li&gt;&lt;li&gt;It is a set of disk drives viewed by the user as one or more logical drives.&lt;/li&gt;&lt;li&gt;Data is distributed across the set of drives in a pre-defined manner.&lt;/li&gt;&lt;br /&gt;&lt;u&gt;There are 8 discrete levels of RAID functionality&lt;/u&gt;&lt;br /&gt;1) Level 0 : Disk Striping&lt;br /&gt;2) Level 1 : Disk Mirroring&lt;br /&gt;3) Level 2 : Bit Interleaving and Header Error Correction (HEC) Parity&lt;br /&gt;4) Level 3 : Bit Interleaving and XOR Parity&lt;br /&gt;5) Level 4 : Block Interleaving with XOR Parity&lt;br /&gt;6) Level 5 : Block Interleaving with Parity Distribution&lt;br /&gt;7) Level 6 : Fault tolerant system&lt;br /&gt;8) Level 7 : Heterogeneous system&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;1) RAID Level 0 - Disk Striping&lt;/strong&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjADa2l1cMrgxYSE6nJ6b8WUVNpP_o1y4hW5QL3KNRrHIJs660kvectiGfy5fA2oNYmpF_ABxe3mRSz7LQYjj_FzULphv1EvhrGt1vy2up7eIw5sc3ke-uK5eaa9xI7RZncWq0kYPOjtqg/s1600-h/1.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjADa2l1cMrgxYSE6nJ6b8WUVNpP_o1y4hW5QL3KNRrHIJs660kvectiGfy5fA2oNYmpF_ABxe3mRSz7LQYjj_FzULphv1EvhrGt1vy2up7eIw5sc3ke-uK5eaa9xI7RZncWq0kYPOjtqg/s400/1.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5257432941027802834" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;center&gt;Disk Striping for RAID Level 0&lt;/center&gt;&lt;br /&gt;RAID Level 0 is based on distribution of data across multiple drives connected to a single disk controller &lt;br /&gt;&lt;br /&gt;&lt;u&gt;Characteristics/Advantages&lt;/u&gt;&lt;br /&gt;1) RAID 0 implements a striped disk array, the data is    broken down into blocks and each block is written to a &lt;br /&gt;separate disk drive.&lt;br /&gt;2) I/O performance is greatly improved by spreading the I/O load across many channels and drives&lt;br /&gt;3) Best performance is achieved when data is striped across  &lt;br /&gt;    multiple controllers with only one drive per controller  &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;2) RAID Level 1 - Disk Mirroring&lt;/strong&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQUcF4VrDE-TSIGiRtqdu2hMm1Fo1jDiP5YaZ1ZSWMGhIUc3Se6xBKko-V2tojPYhs0fX7UZYQo3AKm6XEZdieQ8ZYxEk650kN4Lqx4vhe_UsQcddeVN7Rf5xSmsz2RhFd49Db2SKMtew/s1600-h/2.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQUcF4VrDE-TSIGiRtqdu2hMm1Fo1jDiP5YaZ1ZSWMGhIUc3Se6xBKko-V2tojPYhs0fX7UZYQo3AKm6XEZdieQ8ZYxEk650kN4Lqx4vhe_UsQcddeVN7Rf5xSmsz2RhFd49Db2SKMtew/s400/2.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5257434000017590194" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;center&gt;Disk Layout in RAID Level 1&lt;/center&gt;&lt;br /&gt;RAID Level 1 focuses on fault tolerance in addition to striping. Disk Layout in RAID Level 1&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;3) RAID Level 2 - Bit Interleaving and HEC Parity&lt;/strong&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4D2XH2rc8s3ERyES3lseg8lCspk-gHCpCVPDpR7CRF9hV6PXyRjvtDYtphOW1V4lZ-XZFLpZAuDfwDj6FixCz_cwlhIoH6ipcZ9LtgbSDkB3CxT9yshyphenhyphendeBxc8ewbfNTMTmURBLb_INM/s1600-h/3.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4D2XH2rc8s3ERyES3lseg8lCspk-gHCpCVPDpR7CRF9hV6PXyRjvtDYtphOW1V4lZ-XZFLpZAuDfwDj6FixCz_cwlhIoH6ipcZ9LtgbSDkB3CxT9yshyphenhyphendeBxc8ewbfNTMTmURBLb_INM/s400/3.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5257434426896039618" /&gt;&lt;/a&gt;&lt;br /&gt;RAID 2 disk subsystem contain multiple drives connected to a disk controller, with either single or multiple channels. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;4) RAID Level 3 - Bit Interleaving with XOR Parity&lt;/strong&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHvLEyfHqxBGPxlkGOIUDXGr55JVdE4JnLx27IFv_N1Yf-99nIn85E1A0mFdnI_Fd_TZsUsYWxDTXnZjFORc2RarwxHxElmrebjHmlcIAB10YzOQ80yD4QP144tou23Tngu5ff0Ydc0IE/s1600-h/4.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHvLEyfHqxBGPxlkGOIUDXGr55JVdE4JnLx27IFv_N1Yf-99nIn85E1A0mFdnI_Fd_TZsUsYWxDTXnZjFORc2RarwxHxElmrebjHmlcIAB10YzOQ80yD4QP144tou23Tngu5ff0Ydc0IE/s400/4.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5257434827654526482" /&gt;&lt;/a&gt;&lt;br /&gt;RAID 3 introduces parity to the model by interleaving the data at a bit level across several drives similar to data striping. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;5) RAID Level 4 - Block Interleaving with XOR Parity&lt;/strong&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh3IHdKjP2Fgv5g0EhYyrlvm4Wb2JtnhjQtocWgGbSytnWAVzKsw31OSjNoIfedVSYM0u9EAmgRqakWqh1xlvJ8aCYyyMaXOi1twhDFGzQRKgHHqhgPtzZR_CnupTBgpSC-I3RPa8wE5D8/s1600-h/5.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh3IHdKjP2Fgv5g0EhYyrlvm4Wb2JtnhjQtocWgGbSytnWAVzKsw31OSjNoIfedVSYM0u9EAmgRqakWqh1xlvJ8aCYyyMaXOi1twhDFGzQRKgHHqhgPtzZR_CnupTBgpSC-I3RPa8wE5D8/s400/5.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5257435120776719794" /&gt;&lt;/a&gt;&lt;br /&gt;Very similar to RAID 3 except that striping is done at block level across several drives. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;6) RAID Level 5 - Block Interleaving with Parity Distribution&lt;/strong&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5_lWwcNTX62Jm9vSF1vwWdD1PnAMkwpvzrsLoUAmhcxgTsU1vKvVlDIPV6CbbMPE0WvEiuaay9VQCK1I9OeryoQ4El2okWvhf6poYsanlJHlWX-46SrEhy-P1N8dGvNV60opzXHg9PHQ/s1600-h/6.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5_lWwcNTX62Jm9vSF1vwWdD1PnAMkwpvzrsLoUAmhcxgTsU1vKvVlDIPV6CbbMPE0WvEiuaay9VQCK1I9OeryoQ4El2okWvhf6poYsanlJHlWX-46SrEhy-P1N8dGvNV60opzXHg9PHQ/s400/6.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5257435428182706258" /&gt;&lt;/a&gt;&lt;br /&gt;Parity is distributed across various drives. &lt;br /&gt;Removing a potential bottleneck. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;7) RAID level 6 - Fault-Tolerant System&lt;/strong&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgawRs-ADT4NTzf4r1ifnWId_vN20W7-8718BRZJG0b7Bysj6sVRfHzkd6DnaohzxEIab_2dQaMKVkyBzUQ1HBLtIve0ZqSqcv9F8PMZW88MKPKF6-tlu7elmB3jWzymn2iB_xrNT1neo8/s1600-h/7.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgawRs-ADT4NTzf4r1ifnWId_vN20W7-8718BRZJG0b7Bysj6sVRfHzkd6DnaohzxEIab_2dQaMKVkyBzUQ1HBLtIve0ZqSqcv9F8PMZW88MKPKF6-tlu7elmB3jWzymn2iB_xrNT1neo8/s400/7.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5257435743712213314" /&gt;&lt;/a&gt;&lt;br /&gt;Improvement over RAID 5 model through the addition error recovery information. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;8) RAID Level 7 - Heterogeneous System&lt;/strong&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3WsgEjKN4QmWEjdxujxNViTHQbrhkOYMsqBGnLB_LmsO5vuhv5RU5Qddsvy0ECtblb6ApQT_7M8ZPMzt2gSsjp2WoS0W48dYBJvm2mnsiOE8-gqwm8Nq_cQblBzzcuJ7tREFP9dFjERg/s1600-h/8.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3WsgEjKN4QmWEjdxujxNViTHQbrhkOYMsqBGnLB_LmsO5vuhv5RU5Qddsvy0ECtblb6ApQT_7M8ZPMzt2gSsjp2WoS0W48dYBJvm2mnsiOE8-gqwm8Nq_cQblBzzcuJ7tREFP9dFjERg/s400/8.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5257436044560717954" /&gt;&lt;/a&gt;&lt;br /&gt;Allows each individual drive to access data as fast as possible by incorporating a few crucial features.</description><link>http://note-for-it.blogspot.com/2008/10/multimedia-storage-devices.html</link><author>noreply@blogger.com (Han)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjADa2l1cMrgxYSE6nJ6b8WUVNpP_o1y4hW5QL3KNRrHIJs660kvectiGfy5fA2oNYmpF_ABxe3mRSz7LQYjj_FzULphv1EvhrGt1vy2up7eIw5sc3ke-uK5eaa9xI7RZncWq0kYPOjtqg/s72-c/1.png" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2768273740072947120.post-6618611397438667343</guid><pubDate>Sun, 30 Dec 2007 23:26:00 +0000</pubDate><atom:updated>2007-12-30T21:41:49.349-08:00</atom:updated><title>Multimedia Enabling Technologies</title><description>&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAX22C6M7iIynAcu0UU3nuLvQhaGeUZMwzXv7vwcn6AfWC2ywArDb2lkg6d7mdoXBFRhiVcIdlrUsMZrRhDj1a5HsHVGoXtouk9JZJ9HPv0jothuQaj4QPaPR2UM0h4Zr0rHDP6YBKMYE/s1600-h/technology+relationship.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5150007983514464082" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAX22C6M7iIynAcu0UU3nuLvQhaGeUZMwzXv7vwcn6AfWC2ywArDb2lkg6d7mdoXBFRhiVcIdlrUsMZrRhDj1a5HsHVGoXtouk9JZJ9HPv0jothuQaj4QPaPR2UM0h4Zr0rHDP6YBKMYE/s400/technology+relationship.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;strong&gt;1. Computation technology&lt;/strong&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Higher Processing Power Per Chip&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Continual progress in microelectronics, especially VLSI, has resulted in higher processing power per chip.&lt;/li&gt;&lt;li&gt;Single microprocessor with 107 transistors is available&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;li&gt;Higher Capacity Memory Chips&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Growth in VLSI and more recently ULSI has resulted in 512 Mbytes DRAM chips being routinely available.&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;2. Storage technology&lt;/strong&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Progress In Storage Capacity&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Storage is the key to the performance and functionality of any computer system.&lt;/li&gt;&lt;li&gt;This is even more true for multimedia applications because digitized audio, image and video require large storage capacity (even after compression)&lt;/li&gt;&lt;li&gt;Magnetic media has been the primary storage base for at least four decades.&lt;/li&gt;&lt;li&gt;Rapid technological advances in optical storage media are now a serious challenge to magnetic media&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;3. Compression technology&lt;/strong&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Progress In Compression Technologies&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Compression is necessary for two reasons:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;To reduce storage volumes of sounds, images, and motion video&lt;/li&gt;&lt;li&gt;To reduce the bit rate to transmit them over networks&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;li&gt;Assuming no compression is used, a 8 minutes of CD-quality stereophonic sound or a 3.5 seconds of TV broadcast quality motion video need 80 MB of disk space for storage.&lt;/li&gt;&lt;li&gt;Assuming no compression is used, digital motion video of PAL quality requires 160 Mbps&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;4. Carrier and Transmission technology&lt;/strong&gt;&lt;br /&gt;Growth in carrier/transmission technologies such as optical fiber lead to transmission of multimedia information with high speed, high capacity and high reliability.&lt;br /&gt;&lt;strong&gt;Network Switching Services Technology&lt;/strong&gt;&lt;br /&gt;New networking switching services such as B-ISDN can easily support multimedia. Asynchronous transfer mode (ATM) is the technology used to support B-ISDN.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;5. Input/Output Device Technology&lt;/strong&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Technological Developments have covered a wide range of input and output devices for all aspects of multimedia. These devices include pen input, display systems, scanners, laser printers, digital voice and video input and output systems, video animation input.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Electronic pen&lt;/strong&gt; input is a new technology which is expected to become more popular in the future&lt;/li&gt;&lt;li&gt;&lt;strong&gt;CRT&lt;/strong&gt; based display systems have achieved higher and higher resolution.&lt;/li&gt;&lt;li&gt;Flat panel display systems using &lt;strong&gt;LCDs&lt;/strong&gt; have also become popular and are used for portable computers as well as personal computers.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Printing technology&lt;/strong&gt; has also matured sufficiently. Laser printers for normal office work having resolution of 300 to 600 DPI are routinely available. Higher resolution ranging from 600 to 1200 DPI are useful for specialized multimedia applications. Dot matrix printers also able to print out photo quality images.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Digital Camera&lt;/strong&gt; does not contain film roll; Instead, it stores the captured images in digital form. Images are stored on a magnetic or optical disk in the camera or on a memory cartridge. In some cases, the image is downloaded directly to a computer. A digital camera uses charged-coupled devices (CCD) and CMOS as photo-sensors.&lt;/li&gt;&lt;li&gt;Digital images created by digital cameras offer a number of &lt;strong&gt;advantages&lt;/strong&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Digital images can be printed immediately and any number of times for duplication&lt;/li&gt;&lt;li&gt;Digital images can be integrated with word processor&lt;/li&gt;&lt;li&gt;Digital images can be embedded in mail messages.&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Video frame grabber is used to capture, manipulate, and enhance still video images. Once a digital still image is available, it can easily be enhance, restored, distorted, or analyzed.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Powerful image animation&lt;/strong&gt; techniques are now available using computers where illusion of movement is created by sequentially playing still image frames at a rate of 15-20 frames per second.&lt;/li&gt;&lt;li&gt;Full-Motion video is the most complex component of multimedia systems. Its most important component is the video capture board. A video capture board for full motion video is a circuit card which contains video input, ADC/DAC, audio and video compression and decompression circuits, video frame memory etc.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;6. Protocol Technology&lt;/strong&gt;&lt;br /&gt;These technologies relate to providing generic services to the applications such as address location, address resolution, connection setup, multicasting, end-to-end control. New protocol suites are being developed at the application level to support multimedia applications.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;7. Application Technology&lt;/strong&gt;&lt;br /&gt;These technologies act as a &lt;strong&gt;interface between the protocol technology and the applications themselves&lt;/strong&gt;. Often these technologies are specific to a class of applications and require to be developed as &lt;strong&gt;communication subsystem independent and protocol independent&lt;/strong&gt;, for deployment to a variety of systems.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;8. Database Technology&lt;/strong&gt;&lt;br /&gt;These technologies address the issue of storing and retrieving multimedia information of the order of several gigabits. For example large databases, integrated databases, federated databases, active and proactive databases.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;9. Software Technology&lt;/strong&gt;&lt;br /&gt;These technologies become vital in the modern computing environment as the development of multimedia applications require an appropriate development environment. For example the object-oriented software development environment, distributed environment and parallel environment.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;10. System Integration Technology&lt;/strong&gt;&lt;br /&gt;This is by far the most important requirement in the context of multimedia . Integration involves hardware, software, communication, sensor, coding and compression technologies to coexist in the modern multimedia system and the whole system should have a simple and easy-to-use interface.</description><link>http://note-for-it.blogspot.com/2007/12/multimedia-enabling-technologies.html</link><author>noreply@blogger.com (Han)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAX22C6M7iIynAcu0UU3nuLvQhaGeUZMwzXv7vwcn6AfWC2ywArDb2lkg6d7mdoXBFRhiVcIdlrUsMZrRhDj1a5HsHVGoXtouk9JZJ9HPv0jothuQaj4QPaPR2UM0h4Zr0rHDP6YBKMYE/s72-c/technology+relationship.JPG" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2768273740072947120.post-8581863900023869900</guid><pubDate>Mon, 24 Dec 2007 00:02:00 +0000</pubDate><atom:updated>2007-12-23T16:53:54.718-08:00</atom:updated><title>Software Quality Assurance</title><description>&lt;strong&gt;Concepts and Definitions&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;Software Quality Assurance (SQA) is defined as a planned and systematic approach to the evaluation of the quality of and adherence to software product standards, processes, and procedures.&lt;/li&gt;&lt;li&gt;SQA includes the process of assuring that standards and procedures are established and are followed throughout the software acquisition life cycle.&lt;/li&gt;&lt;li&gt;Compliance with agreed-upon standards and procedures is evaluation through process monitoring, product evaluation, and audits.&lt;/li&gt;&lt;li&gt;Software development and control processes should include quality assurance approval points, where an SQA evaluation of the product may be done in relation to the applicable standards.&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Components of SQA&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;Pre-project components&lt;/li&gt;&lt;li&gt;Software project life cycle components&lt;/li&gt;&lt;li&gt;Infrastructure components for error prevention and improvements&lt;/li&gt;&lt;li&gt;Management SQA components&lt;/li&gt;&lt;li&gt;SQA standards, system certification and assessment components&lt;/li&gt;&lt;li&gt;Organizing for SQA&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Pre-project Components&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Pre-project&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Contract reviews&lt;/li&gt;&lt;li&gt;Development and quality plans&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Common Contract Situations&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;Participation in a tender&lt;/li&gt;&lt;li&gt;Proposal submission according to customer's request for proposal&lt;/li&gt;&lt;li&gt;Receipt of an order from a company's customer&lt;/li&gt;&lt;li&gt;Internet request from another department in the organization&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Contract Review Stages&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The contract review consist of &lt;/li&gt;&lt;ul&gt;&lt;li&gt;Proposal draft review&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Reviews the proposal prior to submission to the potential customer&lt;/li&gt;&lt;li&gt;This includes customer's requirement documents, cost and resource estimates, existing contracts or contract drafts.&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Contract draft review&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Reviews the contract draft prior to signing&lt;/li&gt;&lt;li&gt;Review on the basis of the proposal and the understanding (including changes) reached during the contract negotiation sessions.&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Implementing Contract Reviews&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Who perfoms the review?&lt;/li&gt;&lt;ul&gt;&lt;li&gt;The leader or another member of the proposal team&lt;/li&gt;&lt;li&gt;The members of the proposal team&lt;/li&gt;&lt;li&gt;An outside professional or company staff member who is not member of the proposal team&lt;/li&gt;&lt;li&gt;A team of outside experts&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Development and Quality Plan&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;Planning is meant to prepare adequate foundations for successful and timely completion of the project.&lt;/li&gt;&lt;li&gt;The planning process includes:&lt;/li&gt;&lt;ul&gt;1. Scheduling development activities and estimating the required manpower resources and budget.&lt;br /&gt;2. Recruiting team members and allocating development resources&lt;br /&gt;3. Resolving development risks&lt;br /&gt;4. Implementing required SQA activities&lt;br /&gt;5. Providing management with data needed for project control&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Development Plan: Elements&lt;/strong&gt;&lt;br /&gt;1. Project products, specifying "deliverables"&lt;br /&gt;2. Project interfaces&lt;br /&gt;3. Project's methodology and development tools&lt;br /&gt;4. Software development standards and procedures&lt;br /&gt;5. Map of the development process&lt;br /&gt;6. Project milestones&lt;br /&gt;7. Project staff organization and coordination with external participants&lt;br /&gt;8. Required development facilities&lt;br /&gt;9. Development risks and risk management actions&lt;br /&gt;10. Control methods&lt;br /&gt;11. Project cost estimates&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Quality Assurance Plan: Elements&lt;/strong&gt;&lt;br /&gt;[Sommerville2004]&lt;br /&gt;&lt;br /&gt;&lt;li&gt;A quality assurance plan sets out the desired product qualities and how these are assessed and defines the most significant quality attributes.&lt;/li&gt;&lt;li&gt;The quality assurance plan should define the quality assessment process.&lt;/li&gt;&lt;li&gt;It should set out which organizational standards should be applied and, where necessary, define new standards to be used&lt;/li&gt;&lt;br /&gt;[Galin2004]&lt;br /&gt;&lt;strong&gt;Elements:&lt;/strong&gt;&lt;br /&gt;1. List of quality goals&lt;br /&gt;2. Review activities&lt;br /&gt;3. Software tests&lt;br /&gt;4. Acceptance tests for software externally developed&lt;br /&gt;5. Configuration management plans: tools, procedures, and dates for version release&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Project Life Cycle Components&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;Development&lt;/strong&gt;&lt;br /&gt;-Reviews&lt;br /&gt;-Expert Opinions&lt;br /&gt;-Software Testing&lt;br /&gt;-Assurance of the quality of external participants’ work&lt;br /&gt;&lt;strong&gt;Maintenance&lt;/strong&gt;&lt;br /&gt;-Software maintenance components&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;The Objectives of SQA activities in Software Development&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;Assuring an acceptable level of confidence that the software will conform to functional technical requirements.&lt;/li&gt;&lt;li&gt;Assuring an acceptable level of confidence that the software will conform to managerial scheduling and budgetary requirements.&lt;/li&gt;&lt;li&gt;Initiation and management of activities for the improvement and greater efficiency of software development and SQA activities.&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Several Quality Assurance Activities&lt;/strong&gt;&lt;br /&gt;Requirement specification review&lt;br /&gt;-Approval of the requirement specification to proceed with the next phase&lt;br /&gt;Design inspection&lt;br /&gt;-Detecting errors and derivations from standards&lt;br /&gt;Design review&lt;br /&gt;-Approval of the design to proceed with the next phase&lt;br /&gt;Code inspection&lt;br /&gt;-Detecting errors and derivations from standards&lt;br /&gt;Unit test&lt;br /&gt;-Approval of the unit quality to proceed with the next phase&lt;br /&gt;Integration tests&lt;br /&gt;-Approval of the integrated units to proceed with the system test&lt;br /&gt;Documentation review&lt;br /&gt;-Approval of the documentation for operation&lt;br /&gt;System test&lt;br /&gt;-Approval of the system for operation&lt;br /&gt;Operation phase detection&lt;br /&gt;-Defects will be found during operation by the customer.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Infrastructure Components&lt;/strong&gt;&lt;br /&gt;- Procedures and work instruction&lt;br /&gt;- Templates and checklists&lt;br /&gt;- Staff training, retraining and certification&lt;br /&gt;- Preventive and corrective actions&lt;br /&gt;- Configuration management&lt;br /&gt;- Documentation control&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Management SQA Components&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;Project progress control&lt;/li&gt;&lt;li&gt;Software quality metrics&lt;/li&gt;&lt;li&gt;Software quality costs&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Standards, Certification, Assessment&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;Project process standards&lt;/li&gt;&lt;li&gt;Quality management standards&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Organizing for SQA&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;Management’s role in SQA&lt;/li&gt;&lt;li&gt;The SQA Unit&lt;/li&gt;&lt;li&gt;SQA trusties&lt;/li&gt;&lt;li&gt;SQA committees&lt;/li&gt;&lt;li&gt;SQA forums&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;img id="BLOGGER_PHOTO_ID_5147336001395775234" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEguQk22bMCd0ogYFxgfz6XVeyk-nuqPGLj7PEAZQQpkjJoBC7f9Gg0rIEzfFZTWJC0R0COl4EwUNeWQlcOh7r_QukqHOf7ARCZ9jIAkhTCr29KQ4bP1zNzWpTSQITNu15oaCL3RJzv5wY8/s400/SQA.JPG" border="0" /&gt;</description><link>http://note-for-it.blogspot.com/2007/12/software-quality-assurance.html</link><author>noreply@blogger.com (Han)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEguQk22bMCd0ogYFxgfz6XVeyk-nuqPGLj7PEAZQQpkjJoBC7f9Gg0rIEzfFZTWJC0R0COl4EwUNeWQlcOh7r_QukqHOf7ARCZ9jIAkhTCr29KQ4bP1zNzWpTSQITNu15oaCL3RJzv5wY8/s72-c/SQA.JPG" width="72"/><thr:total>2</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2768273740072947120.post-7109248111620103057</guid><pubDate>Sun, 02 Dec 2007 22:38:00 +0000</pubDate><atom:updated>2007-12-02T14:45:56.113-08:00</atom:updated><title>Introduction to Software Quality</title><description>&lt;strong&gt;Software - IEEE definition&lt;/strong&gt;&lt;br /&gt;Software is:&lt;br /&gt;Computer programs, procedures, and possibly associated documentation and data pertaining to the operation of a computer system.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Software quality - IEEE definition&lt;/strong&gt;&lt;br /&gt;Software quality is:&lt;br /&gt;(1)The degree to which a system, component, or process meets specified requirements.&lt;br /&gt;(2)The degree to which a system, component, or process meets customer or user needs or expectations.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Software quality - Pressman's definition&lt;/strong&gt;&lt;br /&gt;Software quality is :&lt;br /&gt;Conformance to explicitly stated functional and performance requirements, explicitly documented development standards, and implicit characteristics that are expected of all professionally developed software.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;SQA - IEEE definition&lt;/strong&gt;&lt;br /&gt;Software quality assurance is:&lt;br /&gt;1.A planned and systematic pattern of all actions necessary to provide adequate confidence that an item or product conforms to established technical requirements.&lt;br /&gt;2.A set of activities designed to evaluate the process by which the products are developed or manufactured. Contrast with: quality control.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;SQA - expanded definition&lt;/strong&gt;&lt;br /&gt;Software quality assurance is:&lt;br /&gt;A systematic, planned set of actions necessary to provide adequate confidence that the software development process or the maintenance process of a software system product conforms to established functional technical requirements as well as with the managerial requirements of keeping the schedule and operating within the budgetary confines.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;The objectives of SQA activities in software development&lt;/strong&gt;&lt;br /&gt;(1)Assuring an acceptable level of confidence that the software  will conform to functional technical requirements.&lt;br /&gt;(2)Assuring an acceptable level of confidence that the software will conform to managerial scheduling and budgetary requirements.&lt;br /&gt;(3)Initiation and management of activities for the improvement and greater efficiency of  software development and SQA activities.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;The objectives of SQA activities in software maintenance&lt;/strong&gt;&lt;br /&gt;(1)Assuring an acceptable level of confidence that the software maintenance activities will conform to the functional technical requirements.&lt;br /&gt;(2)Assuring an acceptable level of confidence that the software maintenance activities will conform to managerial scheduling and budgetary requirements.&lt;br /&gt;(3)Initiate and manage activities to improve and increase the efficiency of  software maintenance and SQA activities.</description><link>http://note-for-it.blogspot.com/2007/12/introduction-to-software-quality.html</link><author>noreply@blogger.com (Han)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2768273740072947120.post-6753872213606039815</guid><pubDate>Wed, 21 Nov 2007 10:50:00 +0000</pubDate><atom:updated>2007-11-21T04:05:50.599-08:00</atom:updated><title>Introduction to Computer</title><description>&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2bJXHmndybiPFkLUEQGBOfM2pIV1Lp48qWy_LB4gf1WfMhUDNurBI_uhQJA9uJlU-YegT6OQk5px3Ov_5GAl9wBzwWWZno2USVvkXAFfV714n_SpY41WVCKcHQ0E-VB4JMNwxUluNnGI/s1600-h/1.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5135244526559175266" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2bJXHmndybiPFkLUEQGBOfM2pIV1Lp48qWy_LB4gf1WfMhUDNurBI_uhQJA9uJlU-YegT6OQk5px3Ov_5GAl9wBzwWWZno2USVvkXAFfV714n_SpY41WVCKcHQ0E-VB4JMNwxUluNnGI/s400/1.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;strong&gt;What are computers?&lt;/strong&gt;&lt;br /&gt;&lt;li&gt;Problem solving tools that:&lt;br /&gt;1.Accept data&lt;br /&gt;2.Process data&lt;br /&gt;3.Store data&lt;br /&gt;4.Present results&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Why is a computer so powerful?&lt;/strong&gt;&lt;br /&gt;1.Speed&lt;br /&gt;2.Accuracy (GIGO)&lt;br /&gt;3.Reliability&lt;br /&gt;4.Storage&lt;br /&gt;5.Communications&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;What is Computing Literacy?&lt;/strong&gt;&lt;br /&gt;&lt;li&gt;Learning how to use computer to benefit your life or work. &lt;/li&gt;&lt;li&gt;Required by most occupations.&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Functions of a Computer&lt;/strong&gt;&lt;br /&gt;1.Arithmetic - add, subtract, multiply, divide&lt;br /&gt;2.Comparisons - greater than, less than, equal&lt;br /&gt;3.Storage and retrieval&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;What Computers Can Do?&lt;/strong&gt;&lt;br /&gt;1.Data processing&lt;br /&gt;2.Control&lt;br /&gt;3.Design and Development&lt;br /&gt;4.Data Communication&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;What Computers Cannot Do?&lt;/strong&gt;&lt;br /&gt;1.Cannot identify a problem to be solved.&lt;br /&gt;2.Cannot identify and collect data.&lt;br /&gt;3.Cannot design software.&lt;br /&gt;4.Cannot identify the output needed to solve a problem.&lt;br /&gt;5.Cannot interpret and use information to solve a problem.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Elements of an Information System&lt;/strong&gt;&lt;br /&gt;1.Hardware&lt;br /&gt;2.Software&lt;br /&gt;3.Data&lt;br /&gt;4.People&lt;br /&gt;5.Procedures&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Hardware&lt;/strong&gt;&lt;br /&gt;&lt;li&gt;Equipment associated with computer&lt;br /&gt;1.System unit&lt;br /&gt;2.Communication device&lt;br /&gt;3.Storage&lt;br /&gt;4.Input devices&lt;br /&gt;5.Output devices&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Example&lt;/u&gt;&lt;br /&gt;Keyboard, monitor, speaker&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Software&lt;/strong&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Set of instructions that a computer understand (program)&lt;/li&gt;&lt;li&gt;Types of software &lt;/li&gt;&lt;ul&gt;&lt;li&gt;Application softwar&lt;/li&gt;&lt;li&gt;System software&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Application software&lt;/strong&gt;&lt;br /&gt;Programs designed to perform specific tasks for users.&lt;br /&gt;1.Packaged software&lt;br /&gt;2.Custom software&lt;br /&gt;3.Shareware (distributed free for a trial period)&lt;br /&gt;4.Freeware (copyright)&lt;br /&gt;5.Public domain software&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;System Software&lt;/strong&gt;&lt;br /&gt;Interface = Programs that control the operations of the computer and its devices.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Operating system&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Instructions that coordinate activities of hardware devices&lt;/li&gt;&lt;li&gt;Instruction to run application software&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Utility programs&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Perform a specific task.&lt;/li&gt;&lt;li&gt;Uninstaller, anti virus.&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;User Interface&lt;/strong&gt;&lt;br /&gt;&lt;li&gt;Controls how data and instructions are entered and how information is presented in the screen.&lt;/li&gt;&lt;li&gt;GUI allows interaction between users and software using visual images such as icons or button.&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Software Development&lt;/strong&gt;&lt;br /&gt;1.Computer programmers&lt;br /&gt;2.System analyst&lt;br /&gt;3.Programming language&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Users&lt;/strong&gt;&lt;br /&gt;5 categories of computer users:&lt;br /&gt;1.Home Users&lt;br /&gt;2.Mobile Users&lt;br /&gt;3.Large Business Users&lt;br /&gt;4.Small Office/Home Office Users&lt;br /&gt;5.Power Users&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Common Computer Hardware Components - Monitor&lt;/strong&gt;&lt;br /&gt;&lt;li&gt;Output device&lt;/li&gt;&lt;li&gt;Also called VDU (visual display unit).&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Common Computer Hardware Components - Keyboard and Mouse&lt;/strong&gt; &lt;img id="BLOGGER_PHOTO_ID_5135250758556721778" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvJHB_1R8-cYFnJ-P16MoudgP3gnRW3S8JRs2b_kFg_81HC00J-p1iIhs_kKrYqRVAjP5yZALLnR0y_jM_6xa7clwe68W8vsetw38yEvowUqSWjWwaBAbIRlv22dq38WaCuWlCz41JZhQ/s400/13851.jpg" border="0" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Common Computer Hardware Components - System Unit&lt;/strong&gt;&lt;br /&gt;&lt;img id="BLOGGER_PHOTO_ID_5135251510175998594" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh10d8cQCffw1fiLVw0pLwq9EfGMkBtnE9JBQpMatHJdCekUlM-UDcpIeWlxy2kF2zR8qAVHTauWTNI4lQwr_Sv4ZOPYntFpWwZphKRtCtLbD2-je7iOO40PpgP-Gl0ejMAxSS5M7lP6KQ/s400/case.jpg" border="0" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Common Computer Hardware Components - Printer&lt;/strong&gt;&lt;br /&gt;&lt;li&gt;Output device&lt;/li&gt;&lt;img id="BLOGGER_PHOTO_ID_5135253537400562354" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiK6k7LCS3loK83D_ODKSypagWktE4SiPI6bQrHyvJDKdQvLYinfB1kLDJ8ehHen3Y0yo0rCVTNaWerGt51GEsiezGN2FF8hoxXz3CRGrWer9lZdhhYgfvrD6u4ZyrNamhDdg9Bu9Znyqk/s400/epson-stylus-c79-printer.jpg" border="0" /&gt; &lt;p align="left"&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Common Computer Hardware Components - Speaker and modem&lt;/strong&gt;&lt;br /&gt;&lt;li&gt;SPEAKER&lt;/li&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;img id="BLOGGER_PHOTO_ID_5135253391371674274" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjypS4Kd7kJLZfFinNLtnkBJhHpfbqO_95AqHVsSjrurmce3-sztIHW4qwVR_-qAzFBZfKzqZmF_ySBES_c04YNKzBrQcyw4b23pvHlXyG5T7P_PSaSEeUrkROoo7oUrtXM8N9G6dUZBYI/s400/altec_cs_21_1.jpg" border="0" /&gt;&lt;br /&gt;&lt;li&gt;MODEM&lt;/li&gt;&lt;img id="BLOGGER_PHOTO_ID_5135253339832066706" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh52y_7AZmYcIIlGWseB0T_UxTpJfKoDK_tlU4H3Efnqm2Ky4AZJ8eAsJkAvRIzwvT73pLaO0N_34H6a3qyVBAe8FBgE2hShMo3FGfWWumlveMTwgl8N1xBXsdxL6R7dYqriNAaCDW0yiw/s400/ETEC%2520MODEM%252056K%2520V92%2520EXT%2520USB%2520CONEXANT%2520RET.jpg" border="0" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Categories of Computer&lt;/strong&gt;&lt;br /&gt;&lt;li&gt;Personal Computer ( Microcomputer)&lt;/li&gt;&lt;li&gt;Handheld Computer&lt;/li&gt;&lt;li&gt;Internet Appliance&lt;/li&gt;&lt;li&gt;Mid Range Server&lt;/li&gt;&lt;li&gt;Mainframe&lt;/li&gt;&lt;li&gt;Supercomputers&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Personal Computer (Microcomputer)&lt;/strong&gt;&lt;br /&gt;Types:&lt;br /&gt;1.Desktop&lt;br /&gt;&lt;li&gt;2 most popular series : IBM compatible and Apple Macintosh&lt;br /&gt;2.laptop/notebook&lt;/li&gt;&lt;li&gt;Portable, small enough to fit on your lap&lt;/li&gt;&lt;li&gt;Generally more expensive than a desktop computer&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Handheld Computer&lt;/strong&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Small computer that fits in your hand&lt;/li&gt;&lt;li&gt;Also called a &lt;em&gt;palmtop&lt;/em&gt; or &lt;em&gt;pocket computer&lt;/em&gt;&lt;/li&gt;&lt;li&gt;How do you input data with a handheld computer?&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Stylus&lt;/li&gt;&lt;li&gt;Speech recognition&lt;/li&gt;&lt;li&gt;Handwriting recognitionld computer?&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;What is a personal digital assistant (PDA)?&lt;br /&gt;&lt;li&gt;Provides personal organizer functions&lt;/li&gt;1.Calendar&lt;br /&gt;2.Appointment book&lt;br /&gt;3.Address book&lt;br /&gt;4.Calculator&lt;br /&gt;5.Notepad&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Internet Appliance&lt;/strong&gt; &lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg36pFMMf3Fc_VK-BPr-E0PrQ0SQLekhZ8icoavTaTM2R91FoEASK4nG8Wv335wgB5sPPr6fsLHfuuUl0j_Y3C4aLrPfmVcp2jr98KQcDKdvHJrSP6ioR3GaMl11J6VZzRR1ZWjFYGspns/s1600-h/ia.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5135257450115769042" style="FLOAT: right; MARGIN: 0px 0px 10px 10px; CURSOR: hand" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg36pFMMf3Fc_VK-BPr-E0PrQ0SQLekhZ8icoavTaTM2R91FoEASK4nG8Wv335wgB5sPPr6fsLHfuuUl0j_Y3C4aLrPfmVcp2jr98KQcDKdvHJrSP6ioR3GaMl11J6VZzRR1ZWjFYGspns/s200/ia.JPG" border="0" /&gt;&lt;/a&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQh2SvdMWwI3NFfZ5wks6ZhnveDereXEKEyGuIdldaXIsvhK8zsE3Xv830sQhNGTBc9qaLjlyRfK1b56jITX_1uYspk4BvmVr9MWh-f3vCCE6Cl7btyx4R7sVgaug5wjy5qaTk1-_mGoQ/s1600-h/ia.JPG"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;What is an Internet appliance?&lt;br /&gt;&lt;li&gt;Computer whose main purpose is to connect to Internet from home.&lt;/li&gt;&lt;li&gt;Web TV is one example.&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Mid Range Server&lt;/strong&gt; &lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjPiNRws4hAGMVga52_HdLVJ2tXisG3gPGYk-sf3-gPCCyY8hz4AtHOCazrEGkychiW3O_SpzpoCn1Hy9myFf8kaIHqsq9hLpvVYXYQcFN_GdvmCa9PRDadxzjOlg3mZ55DLoCo-esa1jI/s1600-h/midrange.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5135262874659463954" style="FLOAT: right; MARGIN: 0px 0px 10px 10px; CURSOR: hand" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjPiNRws4hAGMVga52_HdLVJ2tXisG3gPGYk-sf3-gPCCyY8hz4AtHOCazrEGkychiW3O_SpzpoCn1Hy9myFf8kaIHqsq9hLpvVYXYQcFN_GdvmCa9PRDadxzjOlg3mZ55DLoCo-esa1jI/s400/midrange.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Use in medium-sized organizations&lt;/li&gt;&lt;li&gt;Cheaper than mainframe&lt;/li&gt;&lt;li&gt;Process faster than microcomputer&lt;/li&gt;&lt;li&gt;When it is uneconomical to use mainframes.&lt;/li&gt;&lt;li&gt;Organizations that use minicomputer:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Airlines &lt;li&gt;Domestic Banks&lt;/li&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Examples:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;IBM AS/400&lt;/li&gt;&lt;li&gt;NEC Astra&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Mainframe&lt;/strong&gt; &lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmZxRQToYTmAKDRjjAgDbboOCXTgMttXZGHxOBL-8fSz9-Fs8PbjoCeYaoSU-JrnMaB187uCpRJvCsqcYriV9A3rlI-PPDKmyqmLkC16Nvlk_xWSKkf91LEv-2a998SMXt-57c93UAeAA/s1600-h/mainframe.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5135261478795092722" style="FLOAT: right; MARGIN: 0px 0px 10px 10px; CURSOR: hand" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmZxRQToYTmAKDRjjAgDbboOCXTgMttXZGHxOBL-8fSz9-Fs8PbjoCeYaoSU-JrnMaB187uCpRJvCsqcYriV9A3rlI-PPDKmyqmLkC16Nvlk_xWSKkf91LEv-2a998SMXt-57c93UAeAA/s200/mainframe.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;Huge computer&lt;/li&gt;&lt;li&gt;Can process large volume of data per second&lt;/li&gt;&lt;li&gt;Faster than minicomputer&lt;/li&gt;&lt;li&gt;More expensive than minicomputer&lt;/li&gt;&lt;li&gt;Can do intensive computational task&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Supercomputer&lt;/strong&gt; &lt;img id="BLOGGER_PHOTO_ID_5135262406508028674" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdIUjVuLuD2NUAUp7tS3WQNa5wvfLuC6WmwAjEEIzC5tFlP77TOvK-ebcua7u_bQDH46V1h93kaUIyOznroytXN4HhVEx7DbO-3fCk3ERf2GCc3ehX3wLV52aQ7YwsrAm1RJYnZl8FDvQ/s400/Supercomputer_neu_01.jpg" border="0" /&gt; &lt;li&gt;Most powerful computer (very fast)&lt;/li&gt;&lt;li&gt;Most expensive&lt;/li&gt;&lt;li&gt;Used for running applications requiring complex and sophisticated mathematical calculations and applications.&lt;/li&gt;&lt;li&gt;Process several billions of instructions per seconds (bips)&lt;/li&gt;&lt;li&gt;Sensitive to temperature, humidity and dust.&lt;/li&gt;</description><link>http://note-for-it.blogspot.com/2007/11/introduction-to-computer.html</link><author>noreply@blogger.com (Han)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2bJXHmndybiPFkLUEQGBOfM2pIV1Lp48qWy_LB4gf1WfMhUDNurBI_uhQJA9uJlU-YegT6OQk5px3Ov_5GAl9wBzwWWZno2USVvkXAFfV714n_SpY41WVCKcHQ0E-VB4JMNwxUluNnGI/s72-c/1.JPG" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2768273740072947120.post-1043271891843781362</guid><pubDate>Sun, 18 Nov 2007 02:40:00 +0000</pubDate><atom:updated>2007-11-17T19:20:25.582-08:00</atom:updated><title>Systems Analysis &amp; Design - Determining System Requirements</title><description>&lt;div align="center"&gt;&lt;strong&gt;&lt;span style="font-size:180%;"&gt;Determining System Requirements&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;Learning Objectives&lt;/strong&gt;&lt;br /&gt;&lt;li&gt;Describe options for designing and conducting interviews and develop a plan for conducting an interview to determine system requirements.&lt;/li&gt;&lt;li&gt;Design, distribute, and analyze questionnaires to determine system requirements.&lt;/li&gt;&lt;li&gt;Explain advantages and pitfalls of observing workers and analyzing business documents to determine requirements.&lt;/li&gt;&lt;li&gt;Explain how computing can provide support for requirements determination.&lt;/li&gt;&lt;li&gt;Learn about Joint Application Design (JAD)&lt;/li&gt;&lt;li&gt;Use prototyping during requirements determination.&lt;/li&gt;&lt;li&gt;Select the appropriate methods to elicit system requirements.&lt;/li&gt;&lt;li&gt;Apply requirements determination to Internet applications.&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;Performing Requirements Determination&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;&lt;li&gt;Gather information on what system should do from many sources.&lt;/li&gt;Users&lt;br /&gt;Reports&lt;br /&gt;Forms&lt;br /&gt;Procedures&lt;br /&gt;&lt;li&gt;Characteristics for gathering requirements&lt;/li&gt;-Impertinence&lt;br /&gt;-Question everything&lt;br /&gt;-Impartiality&lt;br /&gt;-Find the best organizational solution&lt;br /&gt;-Relaxation of constraints&lt;br /&gt;-Attention to detail&lt;br /&gt;-Reframing - View the organization in new ways&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;Deliverables and Outcomes&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Types of deliverables:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Information collected from users&lt;/li&gt;&lt;li&gt;Existing documents and files&lt;/li&gt;&lt;li&gt;Computer-based information&lt;/li&gt;&lt;li&gt;Understanding of organizational components&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Business objective&lt;/li&gt;&lt;li&gt;Information needs&lt;/li&gt;&lt;li&gt;Rules of data processing&lt;/li&gt;&lt;li&gt;Key events&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;Traditional Methods for Determining Requirements&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Interviewing and Listening&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Gather facts, opinions and speculations&lt;/li&gt;&lt;li&gt;Observe body language and emotions&lt;/li&gt;&lt;li&gt;Guidelines&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Plan&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Checklist&lt;/li&gt;&lt;li&gt;Appointment&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Be neutral&lt;/li&gt;&lt;li&gt;Listen&lt;/li&gt;&lt;li&gt;Seek a diverse view&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;li&gt;Interviewing (Continued)&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Interview Questions&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Open-Ended&lt;/li&gt;&lt;ul&gt;&lt;li&gt;No pre-specified answers&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Close-Ended&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Respondent is asked to choose from a set of specified responses&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Additional Guidelines&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Do not phrase questions in ways that imply a wrong or right answer&lt;/li&gt;&lt;li&gt;Listen very carefully to what is being said&lt;/li&gt;&lt;li&gt;Type up notes within 48 hours&lt;/li&gt;&lt;li&gt;Do not set expectations about the new system&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Administering Questionnaires&lt;/li&gt;&lt;ul&gt;&lt;li&gt;More cost-effective than interviews&lt;/li&gt;&lt;li&gt;Choosing respondents&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Should be representative of all users&lt;/li&gt;&lt;li&gt;Types of samples&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Convenient&lt;/li&gt;&lt;li&gt;Random sample&lt;/li&gt;&lt;li&gt;Purposeful sample&lt;/li&gt;&lt;li&gt;Stratified sample&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;li&gt;Questionnaires&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Design&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Mostly closed-ended questions&lt;/li&gt;&lt;li&gt;Can be administered over the phone or in person&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Vs. Interviews&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Interviews cost more but yield more information&lt;/li&gt;&lt;li&gt;Questionnaires are more cost-effective&lt;/li&gt;&lt;li&gt;See table 7-4 for a complete comparison&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;li&gt;Interviewing Groups&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Advantages&lt;/li&gt;&lt;ul&gt;&lt;li&gt;More effective use of time&lt;/li&gt;&lt;li&gt;Enables people to hear opinions of others and to agree or disagree&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Disadvantages&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Difficulty in scheduling&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Nominal Group Technique&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Facilitated process to support idea generation by groups&lt;/li&gt;&lt;li&gt;Individuals work alone to generate ideas which are pooled under guidance of a trained facilitator&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;li&gt;Directly Observing Users&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Serves as a good method to supplement interviews&lt;/li&gt;&lt;li&gt;Often difficult to obtain unbiased data&lt;/li&gt;&lt;ul&gt;&lt;li&gt;People often work differently when being observed&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;Analyzing Procedures and Other Documents&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Types of information to be discovered:&lt;/strong&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Problems with existing system&lt;/li&gt;&lt;li&gt;Opportunity to meet new need&lt;/li&gt;&lt;li&gt;Organizational direction&lt;/li&gt;&lt;li&gt;Names of key individuals&lt;/li&gt;&lt;li&gt;Values of organization&lt;/li&gt;&lt;li&gt;Special information processing circumstances&lt;/li&gt;&lt;li&gt;Reasons for current system design&lt;/li&gt;&lt;li&gt;Rules for processing data&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;strong&gt;Four types of useful documents&lt;/strong&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Written work procedures&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Describes how a job is performed&lt;/li&gt;&lt;li&gt;Includes data and information used and created in the process of performing the job or task&lt;/li&gt;&lt;li&gt;Business form&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Explicitly indicate data flow in or out of a system.&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Report&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Enables the analyst to work backwards from the report to the data that generated it&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Description of current information system&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;Modern Methods for Determining Requirements&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;Joint Application Design (JAD)&lt;/strong&gt;&lt;br /&gt;&lt;li&gt;Brings together key users, managers and systems analysts&lt;/li&gt;&lt;li&gt;Purpose: collect system requirements simultaneously from key people&lt;/li&gt;&lt;li&gt;Conducted off-site&lt;/li&gt;&lt;strong&gt;Prototyping&lt;/strong&gt;&lt;br /&gt;&lt;li&gt;Repetitive process&lt;/li&gt;&lt;li&gt;Rudimentary version of system is built&lt;br /&gt;Replaces or augments SDLC&lt;/li&gt;&lt;li&gt;Goal: to develop concrete specifications for ultimate system&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;Joint Application Design (JAD)&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;Participants&lt;/strong&gt;&lt;br /&gt;-Session Leader&lt;br /&gt;-Users&lt;br /&gt;-Managers&lt;br /&gt;-Sponsor&lt;br /&gt;-Systems Analysts&lt;br /&gt;-Scribe&lt;br /&gt;-IS Staff&lt;br /&gt;&lt;strong&gt;End Result&lt;/strong&gt;&lt;br /&gt;-Documentation detailing existing system&lt;br /&gt;-Features of proposed system&lt;br /&gt;&lt;strong&gt;CASE Tools During JAD&lt;/strong&gt;&lt;br /&gt;-Upper CASE tools are used&lt;br /&gt;-Enables analysts to enter system models directly into CASE during the JAD session&lt;br /&gt;-Screen designs and prototyping can be done during JAD and shown to users&lt;br /&gt;&lt;strong&gt;Supporting JAD with GSS&lt;/strong&gt;&lt;br /&gt;-Group support systems (GSS) can be used to enable more participation by group members in JAD&lt;br /&gt;-Members type their answers into the computer&lt;br /&gt;-All members of the group see what other members have been typing&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;Prototyping&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;&lt;li&gt;Quickly converts requirements to working version of system&lt;/li&gt;&lt;li&gt;Once the user sees requirements converted to system, will ask for modifications or will generate additional requests&lt;/li&gt;&lt;li&gt;Most useful when:&lt;/li&gt;-User requests are not clear&lt;br /&gt;-Few users are involved in the system&lt;br /&gt;-Designs are complex and require concrete form&lt;br /&gt;-History of communication problems between analysts and users&lt;br /&gt;-Tools are readily available to build prototype&lt;br /&gt;&lt;li&gt;Drawbacks&lt;/li&gt;-Tendency to avoid formal documentation&lt;br /&gt;-Difficult to adapt to more general user audience&lt;br /&gt;-Sharing data with other systems is often not considered&lt;br /&gt;-Systems Development Life Cycle (SDLC) checks are often bypassed&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;Business Process Reengineering (BPR)&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Search for and implementation of radical change in business processes to achieve breakthrough improvements in products and services&lt;/li&gt;&lt;li&gt;Goals&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Reorganize complete flow of data in major sections of an organization&lt;/li&gt;&lt;li&gt;Eliminate unnecessary steps&lt;/li&gt;&lt;li&gt;Combine steps&lt;/li&gt;&lt;li&gt;Become more responsive to future change&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Identification of processes to reengineer&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Key business processes&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Set of activities designed to produce specific output for a particular customer or market&lt;/li&gt;&lt;li&gt;Focused on customers and outcome&lt;/li&gt;&lt;li&gt;Same techniques are used as were used for requirements determination&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;li&gt;Identify specific activities that can be improved through BPR&lt;/li&gt;&lt;li&gt;Disruptive technologies&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Technologies that enable the breaking of long-held business rules that inhibit organizations from making radical business changes&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;</description><link>http://note-for-it.blogspot.com/2007/11/systems-analysis-design-determining.html</link><author>noreply@blogger.com (Han)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2768273740072947120.post-395282828214526839</guid><pubDate>Sun, 18 Nov 2007 02:18:00 +0000</pubDate><atom:updated>2007-11-17T18:37:55.739-08:00</atom:updated><title>Systems Analysis &amp; Design - Initiating &amp; Planning Systems Development Projects</title><description>&lt;strong&gt;&lt;u&gt;Activities&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;Project Initiation&lt;/strong&gt;&lt;br /&gt;&lt;li&gt;Focuses on activities designed to assist in organizing team to conduct project planning.&lt;/li&gt;&lt;li&gt;Includes forming the project initiation team, establishing customer relationships, developing a plan to get the project started, setting project management procedures and creating overall environment.&lt;br /&gt;&lt;strong&gt;Project Planning&lt;/strong&gt;&lt;/li&gt;&lt;li&gt;Define activities and the work needed to complete each activity within a single project.&lt;/li&gt;&lt;li&gt;Outcomes :&lt;/li&gt;1. BPP (Baseline Project Plan)&lt;br /&gt;2. SOW (Statement of Work)&lt;br /&gt;&lt;li&gt;ssumptions about resources availability and potential problems will be made.&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;Assessing Project Feasibility&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;Economic&lt;/strong&gt;&lt;br /&gt;-a process of identifying the financial benefits and costs associated with a development project.&lt;br /&gt;&lt;strong&gt;Technical&lt;/strong&gt;&lt;br /&gt;-a process of assessing the development organization’s ability to construct a proposed system.&lt;br /&gt;-Include hardware, software, and operating system to be used in development.&lt;br /&gt;&lt;strong&gt;Operational&lt;/strong&gt;&lt;br /&gt;-a process of assessing the degree to which a proposed system solves business problems or takes advantage of business opportunities.&lt;br /&gt;&lt;strong&gt;Schedule&lt;/strong&gt;&lt;br /&gt;-a process of assessing the degree to which the potential time frame and completion dates for all major activities within a project meet the deadline and constraints for affecting change.&lt;br /&gt;&lt;strong&gt;Legal and contractual&lt;/strong&gt;&lt;br /&gt;-a process of assessing potential legal and contractual ramifications due to the construction of a system.&lt;br /&gt;&lt;strong&gt;Political&lt;/strong&gt;&lt;br /&gt;-a process of evaluating how stakeholders within the organization view the proposed system.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;Economic Feasibility&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;Identify financial benefits and costs associated with a development project&lt;br /&gt;&lt;u&gt;Benefits :&lt;/u&gt;&lt;br /&gt;&lt;strong&gt;Tangible&lt;/strong&gt; - can be measured in dollars and with certainty&lt;br /&gt;Categories :&lt;br /&gt;1. Cost of reduction and avoidance&lt;br /&gt;2. Error reduction&lt;br /&gt;3. Increased feasibility&lt;br /&gt;4. Increased speed of activity&lt;br /&gt;5. Improvement of mgmt planning &amp;amp; control&lt;br /&gt;6. New markets &amp;amp; increase sales opportunity&lt;br /&gt;&lt;strong&gt;Intangible&lt;/strong&gt; - cannot be measured in dollars/with certainty&lt;br /&gt;&lt;li&gt;May have direct organizational benefits or societal impact&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;&lt;strong&gt;Economic Feasibility - Costs&lt;/strong&gt;&lt;/u&gt;&lt;br /&gt;&lt;strong&gt;Tangible&lt;/strong&gt; - Examples: items like hardware, software, operational&lt;br /&gt;&lt;strong&gt;Intangible&lt;/strong&gt; - Examples: loss of customer goodwill&lt;br /&gt;&lt;strong&gt;One-time&lt;/strong&gt; - associated with project initiation &amp;amp; development and the startup of the system.&lt;br /&gt;- Example: new hardware, software purchase&lt;br /&gt;&lt;strong&gt;Recurring&lt;/strong&gt; - cost resulting from the ongoing evolution and use of the system&lt;br /&gt;- Example: application software maintenance incremental data storage expense&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;Technical Feasibility&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;Assess the development organization’s ability to construct a proposed system.&lt;br /&gt;&lt;u&gt;Assessment Factors:&lt;/u&gt;&lt;br /&gt;1. Project size.&lt;br /&gt;2. Project structure.&lt;br /&gt;3. The development group’s experience with the application and technology area.&lt;br /&gt;4. The user group’s experience with development projects and application area.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;Building the BPP&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;Baseline Project Plan (BPP)&lt;/strong&gt;&lt;br /&gt;contains all information collected during project initiation and planning.&lt;br /&gt;&lt;u&gt;Four Sections in BPP: &lt;/u&gt;&lt;br /&gt;1. Introduction - project review &amp;amp; recommendation.&lt;br /&gt;2. System Description - alternatives &amp;amp; system description.&lt;br /&gt;3. Feasibility Assessment - economic, political &amp;amp; schedule, timeline and resource analysis.&lt;br /&gt;4. Management Issues - team configuration and management, communication plan, project standards and procedures, others.</description><link>http://note-for-it.blogspot.com/2007/11/systems-analysis-and-design-initiating.html</link><author>noreply@blogger.com (Han)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2768273740072947120.post-1722191884204824057</guid><pubDate>Sat, 17 Nov 2007 12:56:00 +0000</pubDate><atom:updated>2007-11-17T18:38:45.080-08:00</atom:updated><title>Systems Analysis &amp; Design - Identifying &amp; Selecting Systems Development Projects</title><description>&lt;div align="center"&gt;&lt;strong&gt;&lt;span style="font-size:130%;"&gt;Identifying and Selecting Systems Development Projects&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;Project Identification &amp;amp; Selection&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;The process&lt;/strong&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Identifying potential development projects &lt;/li&gt;&lt;ul&gt;&lt;li&gt;top management, steering committee, user department, development group&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Classifying and ranking projects&lt;/li&gt;&lt;ul&gt;&lt;li&gt;value chain analysis, strategic alignment, potential benefits, resource availability, project size, technical difficulty/risks&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Selecting projects for development&lt;/li&gt;&lt;ul&gt;&lt;li&gt;decisions factors -&gt;decisions outcomes&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;strong&gt;Deliverables&lt;/strong&gt;&lt;br /&gt;&lt;li&gt;A schedule of specific IS development projects.&lt;/li&gt;&lt;li&gt;An assurance that careful consideration was given to project selection.&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;IS Development Projects&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;img id="BLOGGER_PHOTO_ID_5133804883586326994" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXCTuNeOw21F26wUFJDHrn1V-PLbb58jkY8YPlCYNi_Ya_ZIjAWT-C7z3GqGKFzQIutnWfFI8Bp5GOjhiOCq6zMcBdvdDJ51PCrc6UQLmMHZio8oP4kZP7AkZ1arsBYdwBJpsNjRiOrH0/s400/1.JPG" border="0" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;Corporate Strategic Planning&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;an ongoing process that defines the mission, objectives and strategies of an organization. &lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhj5NmYOTdwWISV1Gkh4lwHzNf_RVBI4MiKJzGIUz6VhEIo08IgF6J323BJ0ift6oOeNSEsJzpsMvxhtCkoMEKezyhPIM-xQWR04yW6_sXMwO52aSzFScfYHRs8JiGV9653HqilGYFloRQ/s1600-h/2.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5133805545011290594" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhj5NmYOTdwWISV1Gkh4lwHzNf_RVBI4MiKJzGIUz6VhEIo08IgF6J323BJ0ift6oOeNSEsJzpsMvxhtCkoMEKezyhPIM-xQWR04yW6_sXMwO52aSzFScfYHRs8JiGV9653HqilGYFloRQ/s400/2.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Gain an understanding of the current enterprise&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Top management must determine where it wants the enterprise to be in the future&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;A strategic plan can be developed to guide this transition.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;IS Planning (ISP)&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;an orderly means of assessing the information needs of an organization and defining the systems, databases and technologies that will best satisfy those needs. &lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiI60p1W6kaclxvkbcYv1rlf-YFhRpiqM_3VkJp0mOWgtKVeSnVEcWg9I6v7HtKD-Tlktdd4V5Rg83icUS8Gw8fB2wXwFlPXjubZdmmrb7C6JhWGQiUteSSlM2gCYcEFmGmffW42Gvp8as/s1600-h/3.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5133806262270829042" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiI60p1W6kaclxvkbcYv1rlf-YFhRpiqM_3VkJp0mOWgtKVeSnVEcWg9I6v7HtKD-Tlktdd4V5Rg83icUS8Gw8fB2wXwFlPXjubZdmmrb7C6JhWGQiUteSSlM2gCYcEFmGmffW42Gvp8as/s400/3.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Assess current IS related assets - human resources,data, processes and technology.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The blueprints of those resources are developed to reach the organization’s objectives.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;A series of scheduled projects is defined.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;Describing the Current Situation&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;Top-down planning&lt;/strong&gt; &lt;li&gt;A generic information systems planning methodology that attempts to gain a broad understanding of the information system needs of the entire organization.&lt;/li&gt;&lt;li&gt;Begins by conducting an analysis of the organization’s mission, objectives, strategy and determining the information requirements needed to achieve each objective.&lt;/li&gt;&lt;li&gt;Involved top-level management&lt;/li&gt;&lt;br /&gt;&lt;strong&gt;Bottom-up planning&lt;/strong&gt;&lt;br /&gt;&lt;li&gt;A generic information systems planning methodology that identifies and defines IS development projects based on problem solving or taking advantage of some business opportunities.&lt;/li&gt;&lt;li&gt;ns by the identification of business problems and opportunities.&lt;/li&gt;&lt;li&gt;an be faster and less costly to develop IS project.&lt;/li&gt;&lt;li&gt;t often fail to view the informational needs of the entire organization.&lt;/li&gt;</description><link>http://note-for-it.blogspot.com/2007/11/systems-analysis-and-design-identifying.html</link><author>noreply@blogger.com (Han)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXCTuNeOw21F26wUFJDHrn1V-PLbb58jkY8YPlCYNi_Ya_ZIjAWT-C7z3GqGKFzQIutnWfFI8Bp5GOjhiOCq6zMcBdvdDJ51PCrc6UQLmMHZio8oP4kZP7AkZ1arsBYdwBJpsNjRiOrH0/s72-c/1.JPG" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2768273740072947120.post-2558352142410497652</guid><pubDate>Fri, 16 Nov 2007 12:19:00 +0000</pubDate><atom:updated>2007-11-17T18:39:01.566-08:00</atom:updated><title>Systems Analysis &amp; Design - Managing IS Project</title><description>&lt;div align="center"&gt;&lt;span style="font-family:lucida grande;font-size:180%;"&gt;&lt;strong&gt;Managing IS Project&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;Managing the IS Project&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;Managing the Information Systems Project&lt;/li&gt;&lt;li&gt;Representing and Scheduling Project Plans&lt;/li&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;Managing the Information Systems Project&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;Project?&lt;/strong&gt;&lt;br /&gt;* a planned undertaking of related activities to reach an objective that have a beginning and an end&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;Project management process&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;1. Initiating the project&lt;br /&gt;2. Planning the project&lt;br /&gt;3. Executing the project&lt;br /&gt;4. Closing down the project&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;Initiating the project&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;1. Establishing the project initiation team&lt;br /&gt;2. Establishing a relationship with the customer&lt;br /&gt;3. Establishing the project initiation plan&lt;br /&gt;4. Establishing management procedures&lt;br /&gt;5. Establishing the project management and project workbook&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;Project Planning&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;1. Describing project scope, alternatives, and feasibility&lt;br /&gt;2. Dividing the project into manageable tasks&lt;br /&gt;3. Estimating resources and creating a resource plan&lt;br /&gt;4. Developing a preliminary schedule&lt;br /&gt;5. Developing a communication plan&lt;br /&gt;6. Determining project standards and procedures&lt;br /&gt;7. Identifying and assessing risk&lt;br /&gt;8. Creating a preliminary budget&lt;br /&gt;9. Developing a statement of work&lt;br /&gt;10. Setting a baseline project plan&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;Representing and Scheduling Project Plans&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Representing Project Plans&lt;/li&gt;&lt;ul&gt;&lt;li&gt;PERT and Gantt Chart&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Using project management software&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Microsoft Project&lt;/li&gt;&lt;li&gt;Primavera, KickStart etc&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;br /&gt;&lt;u&gt;&lt;strong&gt;PERT vs. Gantt &lt;/strong&gt;&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;&lt;u&gt;PERT chart&lt;/u&gt;&lt;/li&gt;&lt;br /&gt;All us to show dependencies explicitly&lt;br /&gt;Allow us to calculate critical path&lt;br /&gt;Can tell us how one task filling behind affects other tasks&lt;br /&gt;&lt;br /&gt;&lt;li&gt;&lt;u&gt;Gantt charts&lt;/u&gt;&lt;/li&gt;&lt;br /&gt;Allow us to record progress of project&lt;br /&gt;Allow us to see what tasks are falling behind&lt;br /&gt;Allow us to represent overlapping tasks&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;Project Management Tools&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;An example is &lt;strong&gt;&lt;span style="color:#3366ff;"&gt;&lt;span style="color:#000099;"&gt;MS Project&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;li&gt;Allow us to specify tasks, dependencies, etc&lt;/li&gt;&lt;li&gt;Allow us to specify progress on tasks, etc&lt;/li&gt;&lt;li&gt;Can generate either PERT or Gantt charts (whichever we want) from data entered&lt;/li&gt;&lt;p align="center"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size:180%;"&gt;PERT CHART&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p align="left"&gt;&lt;strong&gt;&lt;u&gt;PERT CHART - the making&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;Steps:&lt;br /&gt;1. Identify each activity to be completed in the project&lt;br /&gt;2. Determine:&lt;br /&gt;&lt;ol&gt;a. Optimistic time (o) - min&lt;br /&gt;b. Realistic time (r) - “best guess”&lt;br /&gt;c. Pessimistic time (p) - max&lt;br /&gt;d. Calculate ET:&lt;br /&gt;&lt;ol&gt;ET = &lt;u&gt;o + 4r + p&lt;/u&gt;&lt;br /&gt;&lt;ol&gt;&lt;ol&gt;6&lt;/ol&gt;&lt;/ol&gt;&lt;/ol&gt;&lt;/ol&gt;&lt;img id="BLOGGER_PHOTO_ID_5133447967509062034" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7OImnm4yGSBWKgxxbgTZFCLm1cNm9TxYhUZyi41Tufg2FSbs1BlV2dFmZKWoiQpNB6lUB2Ka2BoK84046HuZFCa25TxpO8wk1ZL8bxbr3Wdnv60U2qAvQ4PsO66eI4gUt0N6mOYJakpw/s400/ET.JPG" border="0" /&gt; 3. Determine the sequence of the activities and precedence relationships among all activities&lt;br /&gt;&lt;u&gt;Example :&lt;br /&gt;&lt;br /&gt;&lt;/u&gt;&lt;u&gt;&lt;img id="BLOGGER_PHOTO_ID_5133447787120435586" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHxB03ZUgNHC26uoMEJsIqO8b4uwD2CcM6ZjlQ9qai0BzHrtEdNorVUNXEAdZLIWhbd9HVPc62hJerU1ElQM9unhmVBtU7wxTshx0tYZKuJ5TwVzZe7ABzxObTpIAZW40Xa7RqHK0tIkc/s400/2.JPG" border="0" /&gt;&lt;/u&gt;&lt;br /&gt;&lt;ol&gt;&lt;/ol&gt;&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;img id="BLOGGER_PHOTO_ID_5133449749920489890" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjo8XHHUYmTvElz5uJWJavClOCRBSn29lobL7GS_aloOWdmMxQyP5s_Fow47Zg8xHEgiSM0l8SPiPWlEmFddNLTpgVNigJnFJyBztrfj0SScyGc0xB1iRjAGBkUlXZUvIJS5yXmUjaPoiU/s400/pert+chart.JPG" border="0" /&gt;&lt;br /&gt;&lt;br /&gt;4. Determine the &lt;u&gt;critical path&lt;/u&gt;(CP)&lt;br /&gt;* CP - delay in completion of an activity will result in delaying the entire project&lt;br /&gt;* &lt;u&gt;slack time&lt;/u&gt; - the amount of time that an activity can be delayed without delaying the project&lt;br /&gt;* calculate T&lt;sub&gt;E&lt;/sub&gt; (sum of the ET for each activity from LR)&lt;br /&gt;* calculate T&lt;sub&gt;L&lt;/sub&gt; (time an activity can be completed without delaying the project - RL)&lt;br /&gt;&lt;br /&gt;** CP = activities slack time equals to zero&lt;/p&gt;&lt;p&gt;&lt;img id="BLOGGER_PHOTO_ID_5133451059885515186" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHaB9b6hCkqhRAanmeTHsUrx0p4NgFkgqK6lpbZWh_w7YUokP6ph_pzHd4tOO74x96dfsSVwyrec0rFbhBFc6FBGyXg0SSsgrFVrhvr8O0cBq6ITh6XAcnrGJ7wyaSInULDx17ooCKJj4/s400/pertchart.JPG" border="0" /&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;img id="BLOGGER_PHOTO_ID_5133451523741983170" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgc0p9EejdPr6R5TGhbqBxYGZhmsHLoKwYXEqa1hXX8zfKPw34zJKGG4ZFy2Hihc4x0WlsrOnz9u-cTlUiQnbZmw7ZKZS4B31ZqwFzvOcFWQwrap2Xz4xxduRv7dbXE_OXQETFG9mkU03I/s400/example.JPG" border="0" /&gt;&lt;/p&gt;</description><link>http://note-for-it.blogspot.com/2007/11/systems-analysis-and-design-managing-is.html</link><author>noreply@blogger.com (Han)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7OImnm4yGSBWKgxxbgTZFCLm1cNm9TxYhUZyi41Tufg2FSbs1BlV2dFmZKWoiQpNB6lUB2Ka2BoK84046HuZFCa25TxpO8wk1ZL8bxbr3Wdnv60U2qAvQ4PsO66eI4gUt0N6mOYJakpw/s72-c/ET.JPG" width="72"/><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2768273740072947120.post-7709156781163773441</guid><pubDate>Fri, 16 Nov 2007 11:23:00 +0000</pubDate><atom:updated>2007-11-17T18:39:22.977-08:00</atom:updated><title>Systems Analysis &amp; Design - Systems Development</title><description>&lt;div align="center"&gt;&lt;strong&gt;&lt;span style="font-size:180%;"&gt;Systems Development&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;Foundations for Systems Development&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;&lt;li&gt;The concept of systems development&lt;/li&gt;&lt;li&gt;A modern approach to system analysis and design&lt;/li&gt;&lt;li&gt;System Analyst in System Development&lt;/li&gt;&lt;li&gt;Types of Information System and System development&lt;/li&gt;&lt;li&gt;System development life cycle&lt;/li&gt;&lt;li&gt;Skills required of a system analyst&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;Systems Analysis and Design&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;A complex, challenging, and stimulating organizational process that a team of business and systems professionals uses to develop and maintain computer-based information systems.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;The concept of systems development&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;&lt;li&gt;information system and design&lt;/li&gt;&lt;li&gt;application software&lt;/li&gt;&lt;li&gt;software engineering processes&lt;/li&gt;&lt;li&gt;methodologies&lt;/li&gt;&lt;li&gt;techniques&lt;/li&gt;&lt;li&gt;tools&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;A Modern Approach to System Analysis and Design&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;&lt;li&gt;Separating data and processes that handle data&lt;/li&gt;3 components of IS :&lt;br /&gt;i. Data&lt;br /&gt;ii. Data flow&lt;br /&gt;iii. Processing logic&lt;br /&gt;* Process-oriented approach v.s.&lt;br /&gt;data-oriented approach&lt;br /&gt;&lt;li&gt;Separating databases and applications database?&lt;/li&gt;Application independence&lt;br /&gt;&lt;li&gt;&lt;strong&gt;Team:&lt;/strong&gt;&lt;br /&gt;1. IS manager&lt;br /&gt;2. system analyst(SA)&lt;br /&gt;3. programmers&lt;br /&gt;4. end-users&lt;br /&gt;5. supporting end-user&lt;br /&gt;6. business managers&lt;br /&gt;7. other IS Managers/Technicians&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;SA in System Development&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;Systems Analyst&lt;/strong&gt;&lt;br /&gt;"the key individuals in the systems development process"&lt;br /&gt;&lt;strong&gt;Skills required :&lt;/strong&gt;&lt;br /&gt;1. Analytical skills&lt;br /&gt;2. Technical skills&lt;br /&gt;3. Management skills&lt;br /&gt;4. Interpersonal skills&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;Skills Required for SA&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;Technical Skills&lt;/strong&gt;&lt;br /&gt;understands the potential and the limitations of IT&lt;br /&gt;&lt;strong&gt;Management Skills&lt;/strong&gt;&lt;br /&gt;&lt;li&gt;resource management&lt;/li&gt;&lt;li&gt;project management&lt;/li&gt;&lt;li&gt;risk management&lt;/li&gt;&lt;li&gt;change management&lt;/li&gt;&lt;strong&gt;Interpersonal Skills&lt;/strong&gt;&lt;br /&gt;&lt;li&gt;communication skills&lt;/li&gt;&lt;li&gt;interviewing, listening and questionnaires&lt;/li&gt;&lt;li&gt;written and oral presentations&lt;/li&gt;&lt;li&gt;working alone and with a team&lt;/li&gt;&lt;li&gt;facilitating groups&lt;/li&gt;&lt;li&gt;managing expectations&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;Analytical Skills&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;Sets of Analytical Skills:&lt;br /&gt;&lt;li&gt;System Thinking&lt;/li&gt;&lt;li&gt;Organizational Knowledge&lt;/li&gt;&lt;li&gt;Problem Identifications&lt;/li&gt;&lt;li&gt;Problem Analyzing and Solutions&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;Organizational Knowledge&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;&lt;li&gt;How work officially gets done in a particular organization&lt;/li&gt;&lt;li&gt;Understand the organization’s internal politics&lt;/li&gt;&lt;li&gt;Understand the organization’s competitive and regulatory environment&lt;/li&gt;&lt;li&gt;Understand the organization’s strategies and tactics&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;Types of IS and System development&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;1. Transaction processing systems&lt;br /&gt;2. Management Information system&lt;br /&gt;3. Decision support system (DSS)&lt;br /&gt;4. Expert systems&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;System development life cycle&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;&lt;img id="BLOGGER_PHOTO_ID_5133404674238718306" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0yUYqh4lkNAMLJOKXfJh9w1kT8dLRibJ3QAc3SdjJ24up8A3_SqR129CxhGh0ftMBr1YRFJ9TgiqpwkxEdyNeZIh8fKooxWkhM04lqHQqG0G6mFi2HRyNKY5QP591jt-sj-2fx5W0egA/s320/SAD.JPG" border="0" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;Systems Thinking&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;1. Identify something as a SYSTEM&lt;br /&gt;2. Translate a specific physical situation into abstract terms&lt;br /&gt;3. Think about the essential characteristics of a specific situation&lt;br /&gt;What is "&lt;strong&gt;SYSTEM&lt;/strong&gt;"?&lt;br /&gt;&lt;em&gt;DEFINITION&lt;/em&gt; : "An inter-related set of components with an identifiable boundary working together for some purpose"&lt;br /&gt;&lt;strong&gt;Characteristic of a SYSTEM&lt;/strong&gt;&lt;br /&gt;&lt;li&gt;Components/subsystems&lt;/li&gt;&lt;li&gt;Inter-related components&lt;/li&gt;&lt;li&gt;A boundary&lt;/li&gt;&lt;li&gt;A purpose&lt;/li&gt;&lt;li&gt;An environment&lt;/li&gt;&lt;li&gt;Interfaces&lt;/li&gt;&lt;li&gt;Input&lt;/li&gt;&lt;li&gt;Output&lt;/li&gt;&lt;li&gt;Constraints&lt;/li&gt;&lt;br /&gt;&lt;strong&gt;Important System Concepts&lt;/strong&gt;&lt;br /&gt;To guide the design of Information System&lt;br /&gt;&lt;u&gt;Decomposition&lt;/u&gt; - Breaking down a system into its components&lt;br /&gt;&lt;u&gt;Modularity&lt;/u&gt; - Dividing a system up into chunks or modules of a relatively uniform size&lt;br /&gt;&lt;u&gt;Coupling&lt;/u&gt; - The extent to which subsystems depend on each other&lt;br /&gt;&lt;u&gt;Cohesion&lt;/u&gt; - The extent to which a system/subsystems performs a single function&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;Problem Identification&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;What is "&lt;strong&gt;PROBLEM&lt;/strong&gt;"?&lt;br /&gt;To identify:&lt;br /&gt;&lt;li&gt;compare current situation to the desired situation&lt;/li&gt;&lt;li&gt;Use models which are relied on by the IS users but it depends on organizational areas&lt;/li&gt;&lt;li&gt;see problems from a broader perspective&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;Problem Analyzing &amp;amp; Solving&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;Analysis :&lt;/strong&gt;&lt;br /&gt;&lt;li&gt;find out more about the problem&lt;/li&gt;&lt;li&gt;Formulate alternative solutions to the problems&lt;/li&gt;&lt;li&gt;Phases :&lt;/li&gt;1. Intelligence&lt;br /&gt;2. Design&lt;br /&gt;3. Choice&lt;br /&gt;4. Implementation</description><link>http://note-for-it.blogspot.com/2007/11/systems-analysis-and-design-systems.html</link><author>noreply@blogger.com (Han)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0yUYqh4lkNAMLJOKXfJh9w1kT8dLRibJ3QAc3SdjJ24up8A3_SqR129CxhGh0ftMBr1YRFJ9TgiqpwkxEdyNeZIh8fKooxWkhM04lqHQqG0G6mFi2HRyNKY5QP591jt-sj-2fx5W0egA/s72-c/SAD.JPG" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2768273740072947120.post-314546326012409481</guid><pubDate>Wed, 14 Nov 2007 10:28:00 +0000</pubDate><atom:updated>2007-11-14T08:19:58.611-08:00</atom:updated><title>Human Computer Interaction</title><description>&lt;strong&gt;Introduction&lt;/strong&gt;&lt;br /&gt;&lt;li&gt;What is Human Computer Interaction?&lt;br /&gt;Is the study of the relationships which exist between human users and the computer systems they use in the performance of their various tasks. &lt;li&gt;HCI seeks to provide an understanding of how users function, the tasks they need to perform and the way in which a computer systems needs to be structured to facilitate the easy carrying out of those tasks.&lt;/li&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;strong&gt;The importance of HCI&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;HCI is important in the design process since the computer interface is the first point of contact the user has with the system and the user will judge the system on the basis of the interface. &lt;li&gt;Systems should consider some aspects of the cost:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;The cost of software is high and the competitive edge is more difficult to achieve. The interface to a system might give it this edge.&lt;/li&gt;&lt;li&gt;The cost to train users is high, therefore, a system which is easy and natural to use will save money in the long run, since the training time will be kept to a minimum.&lt;/li&gt;&lt;li&gt;The cost of human error can be high. Systems that are transparent ought to reduce the likelihood of error or to aid error recovery.&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;br /&gt;&lt;strong&gt;Taxonomy of HCI&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;img id="BLOGGER_PHOTO_ID_5132641254897255570" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnI_N_QJnSzHerUZ71li98_EV4050M7p_lrjbsKPNklMPNf_mj0VEhFTiHSs1_TSXrMD9Hk_mE_YgSF9bDEti5WaCWxJDptPPbXbnXAyK53o5ieKJe4DEpXVdhdRqpZtUXnC5am0w8PZk/s320/HCI.JPG" border="0" /&gt; &lt;strong&gt;&lt;p&gt;&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;• &lt;strong&gt;Use and context&lt;/strong&gt;&lt;br /&gt;o &lt;u&gt;social organization and work&lt;/u&gt;&lt;br /&gt;§ Points of view (e.g. Industrial engineering, operations resesarch)&lt;br /&gt;§ Models of human activity&lt;br /&gt;§ Models of small groups and organisations&lt;br /&gt;§ Models of work, workflow, offices.&lt;br /&gt;o &lt;u&gt;application areas&lt;/u&gt;&lt;br /&gt;§ Characterization of application areas (eg. Individual, group)&lt;br /&gt;§ Document-oriented interfaces (eg. Text-editing, document formatting, spreadsheets, hypertext)&lt;br /&gt;o &lt;u&gt;human-machine fit &amp;amp; adaptation&lt;/u&gt;&lt;br /&gt;§ Arrange a fit between the designed object and its use.&lt;br /&gt;§ Changes to fit can be made&lt;br /&gt;· At a design time/ at time of use&lt;br /&gt;· Either changing the system or the user&lt;br /&gt;• &lt;strong&gt;Human characteristics (how people work and how they are expected to interact with machines)&lt;br /&gt;&lt;/strong&gt;o &lt;u&gt;human information processing&lt;/u&gt;&lt;br /&gt;§ Phenomena and theory of memory, perception, motor skills, problem solving, motivation.&lt;br /&gt;o &lt;u&gt;language, communication, and interaction&lt;/u&gt;&lt;br /&gt;§ Syntax, semantics&lt;br /&gt;§ Graphical interaction, query, command&lt;br /&gt;o &lt;u&gt;ergonomics&lt;/u&gt;&lt;br /&gt;§ physical factors&lt;br /&gt;§ mental factors&lt;br /&gt;• &lt;strong&gt;Computer system &amp;amp; interface architecture&lt;/strong&gt;&lt;br /&gt;o input &amp;amp; output devices&lt;br /&gt;o dialogue techniques&lt;br /&gt;o dialogue genre&lt;br /&gt;o computer graphics&lt;br /&gt;o dialog architecture&lt;br /&gt;• &lt;strong&gt;Development process&lt;/strong&gt;&lt;br /&gt;o design approaches&lt;br /&gt;o implementation techniques &amp;amp; tool&lt;br /&gt;o evaluation techniques&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Components of HCI&lt;/strong&gt;&lt;br /&gt;1. Human -user&lt;br /&gt;2. Computer - mediator&lt;br /&gt;3. Interface - used&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;strong&gt;Relationship of HCI to other disciplines&lt;br /&gt;HCI&lt;/strong&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;li&gt;Engineering&lt;/li&gt;&lt;li&gt;Artificial Intelligence&lt;/li&gt;&lt;li&gt;psychology&lt;/li&gt;&lt;li&gt;Computer Science&lt;/li&gt;&lt;li&gt;physiology&lt;/li&gt;&lt;li&gt;Anthropology&lt;/li&gt;&lt;li&gt;Ergonomics&lt;/li&gt;&lt;li&gt;Linguistics&lt;/li&gt;&lt;li&gt;Philosophy&lt;/li&gt;&lt;li&gt;Art&lt;/li&gt;&lt;li&gt;Sociology&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size:130%;"&gt;Disciplines contributing to HCI&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;• &lt;strong&gt;Computer Science&lt;/strong&gt;&lt;br /&gt;o To provide knowledge about the capability of technology and ideas about how this potential can be harnessed.&lt;br /&gt;o Concerned about developing various kinds of techniques to support software design, development and maintenance.&lt;br /&gt;• &lt;strong&gt;Cognitive Psychology&lt;/strong&gt;&lt;br /&gt;o Concerned with understanding human behavior and the mental processes that underlie it.&lt;br /&gt;o To account for human behavior, cognitive psychology has adopted the notion of information processing such as what we see, what we touch, what we taste.&lt;br /&gt;• &lt;strong&gt;Social and organizational psychology&lt;/strong&gt;&lt;br /&gt;o Concerned with studying the nature and causes of human behaviour in a social context.&lt;br /&gt;o The role of social and organizational psychology is to inform designers about social and organizational structures and about how the introduction of computers will influence working practices.&lt;br /&gt;• &lt;strong&gt;Ergonomics&lt;/strong&gt;&lt;br /&gt;o Developed from the interests of a number of different disciplines.&lt;br /&gt;o Its purpose is to define and design tools and various artifacts for different work, leisure and domestic environments to suit the capabilities and capacities of users.&lt;br /&gt;• &lt;strong&gt;Linguistics&lt;/strong&gt;&lt;br /&gt;o Is the scientific study of language&lt;br /&gt;o Understanding of the syntax (structure) and semantic (meaning) is important&lt;br /&gt;• &lt;strong&gt;Artificial Intelligence&lt;/strong&gt;&lt;br /&gt;o Concerned with the design of intelligent computer programs which simulate different aspects of intelligent human behaviour.&lt;br /&gt;o The relationship of AI and HCI is mainly concerned with users’ needs when interacting with an intelligent interface.&lt;br /&gt;• &lt;strong&gt;Philosophy, sociology and anthropology&lt;/strong&gt;&lt;br /&gt;o Traditionally, they have not been directly involved with the actual design of computer systems, but rather with the consequences of developments in information technology and technology transfer.&lt;br /&gt;• &lt;strong&gt;Engineering and design&lt;/strong&gt;&lt;br /&gt;o Engineering is the applies science which relies heavily on model building and empirical testing. its takes the findings of science and utilizes them in the production of artifacts.&lt;br /&gt;o Design contributes creative skills and knowledge to this process.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size:130%;"&gt;Factors in HCI&lt;/span&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;img id="BLOGGER_PHOTO_ID_5132641336501634210" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhOb25CKBtqEPkRVMu9W8EijRYyeL_knAz0jJjrpWm7TLTJ5tEmDWNZyxaxPgqXdjPu9rdTlUYMQWiwRMV7EkAR5qPKFcrtHraFjjqgoDXRfg4sJBJ1K9LPBad0q5Fm8-FQYu7UX8WzHvE/s320/HCI2.JPG" border="0" /&gt;&lt;br /&gt;&lt;/strong&gt;&lt;p&gt;&lt;span style="font-size:130%;"&gt;&lt;strong&gt;Human Factors (Ergonomics)&lt;/strong&gt;&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;Is the study of the physical characteristics of the interaction:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;How the controls are designed&lt;/li&gt;&lt;li&gt;The physical environment in which the interaction takes place&lt;/li&gt;&lt;li&gt;The layout and physical qualities of the screen.&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size:130%;"&gt;Issues Addressed by Ergonomics&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Arrangement of controls and displays&lt;/strong&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Sets of controls and parts of the display should be grouped logically to allow rapid access by the user.&lt;/li&gt;&lt;li&gt;Should be organized in terms of:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;em&gt;Functionality&lt;/em&gt; – controls and displays are organized so that those that are functionally related are placed together&lt;/li&gt;&lt;li&gt;&lt;em&gt;Sequential&lt;/em&gt; - controls and displays are organized in a particular task sequence.&lt;/li&gt;&lt;li&gt;&lt;em&gt;Frequency&lt;/em&gt; - controls and displays are organized based on the frequency of used&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;li&gt;&lt;strong&gt;The physical environment of the interaction&lt;/strong&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Where will the system be used&lt;/li&gt;&lt;li&gt;By whom will it be used&lt;/li&gt;&lt;li&gt;Will users be sitting, standing or moving about&lt;/li&gt;&lt;li&gt;Considerations&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Size The smallest user should be able to reach all the controls (this may include a user in a wheelchair), and the largest user should not be cramped in the environment. In particular, all users should be comfortably able to see critical displays.&lt;/li&gt;&lt;li&gt;Seat For long period of use, the user should be seated for comfort and stability, and seating should provide back support.&lt;/li&gt;&lt;li&gt;Stand If required to stand, the user should have room to move around in order to reach all the controls.&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;li&gt;&lt;strong&gt;Health Issues&lt;/strong&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;These are the factors in the physical environment that directly affect the quality of the interaction and the user's performance : &lt;/li&gt;&lt;ul&gt;&lt;li&gt;Physical Position&lt;/li&gt;&lt;li&gt;Temperature&lt;/li&gt;&lt;li&gt;Lighting&lt;/li&gt;&lt;li&gt;Noise&lt;/li&gt;&lt;li&gt;Time&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;li&gt;&lt;strong&gt;The use of colour&lt;/strong&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Importance of Arrangement of Control and Displays&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Give strong emotional reaction&lt;/li&gt;&lt;li&gt;Add accents to an uninteresting display&lt;/li&gt;&lt;li&gt;Facilitate subtle discrimination in complex displays&lt;/li&gt;&lt;li&gt;Emphasize the logical organization of information&lt;/li&gt;&lt;li&gt;Draw attention to alert the users&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;ul&gt;&lt;/ul&gt;</description><link>http://note-for-it.blogspot.com/2007/11/human-computer-interaction.html</link><author>noreply@blogger.com (Han)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnI_N_QJnSzHerUZ71li98_EV4050M7p_lrjbsKPNklMPNf_mj0VEhFTiHSs1_TSXrMD9Hk_mE_YgSF9bDEti5WaCWxJDptPPbXbnXAyK53o5ieKJe4DEpXVdhdRqpZtUXnC5am0w8PZk/s72-c/HCI.JPG" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2768273740072947120.post-4392473502151403110</guid><pubDate>Wed, 14 Nov 2007 10:18:00 +0000</pubDate><atom:updated>2012-01-10T11:10:42.970-08:00</atom:updated><title>The C Language</title><description>&lt;span style="font-family:arial;"&gt;&lt;strong&gt;The Language&lt;/strong&gt;&lt;br /&gt;Where did it come from?&lt;br /&gt;-Seed language was the Basic Combined Programming Language(BCPL) in 1967&lt;br /&gt;-BCPL refined into a language called B&lt;br /&gt;-Dennis Ritchie enhanced B to form C in 1972&lt;br /&gt;-The American National Standards Institute(ANSI) completed C standards in 1988&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Why C?&lt;/strong&gt;&lt;br /&gt;-C is a &lt;strong&gt;powerful&lt;/strong&gt; and &lt;strong&gt;flexible&lt;/strong&gt; language.&lt;br /&gt;-C is a &lt;strong&gt;popular&lt;/strong&gt; language preferred by professional programmers.&lt;br /&gt;-C is a &lt;strong&gt;portable&lt;/strong&gt; language.&lt;br /&gt;-C is a language of few words, containing only a handful of terms &lt;strong&gt;keywords&lt;/strong&gt;.&lt;br /&gt;-C is &lt;strong&gt;modular.&lt;/strong&gt;&lt;br /&gt;-&lt;strong&gt;Structured&lt;/strong&gt; language.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; DISPLAY: block; CURSOR: hand" id="BLOGGER_PHOTO_ID_5132638467463480402" border="0" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicbb3O_ir3I93iasNsvUQBQfFM4N9DFrxC9AuOCz3Cf7OvtGrA9Nz45MiWd4Zx0JTkg7rS307oPOFB75uQJEllvSt1m0kIKGxJpxwDi2X_l5O5axoq2XAO6LUghzZiLhVqIeTk17P944Y/s320/1.jpg" /&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;strong&gt;Forming a C Program&lt;/strong&gt;&lt;br /&gt;Whitespace&lt;br /&gt;-spaces, tabs, line endings, and blank lines.&lt;br /&gt;-irrelevant to the compiler.&lt;br /&gt;-should be used in specific places to make your program more readable.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Outline Form&lt;/strong&gt;&lt;br /&gt;-Your program should resemble an outline with main topics to the left and subordinate topics to the right.&lt;br /&gt;-Statements end with semicolon "&lt;strong&gt;;&lt;/strong&gt;"&lt;br /&gt;-Where the line ends is usually not important.&lt;br /&gt;-However, line breaks are not allowed inside of quotations.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Comments&lt;/strong&gt;&lt;br /&gt;-Comments in C are shown by &lt;strong&gt;&lt;span style="color:#ff0000;"&gt;/*&lt;/span&gt;&lt;/strong&gt; and &lt;strong&gt;&lt;span style="color:#ff0000;"&gt;*/&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;-Everything between &lt;strong&gt;&lt;span style="color:#ff0000;"&gt;/*&lt;/span&gt;&lt;/strong&gt; and &lt;strong&gt;&lt;span style="color:#ff0000;"&gt;*/&lt;/span&gt;&lt;/strong&gt; is ignored by the compiler.&lt;br /&gt;-Comments are very important to the understandability of a program.&lt;br /&gt;-Make sure you end all of your comments.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Directives&lt;/strong&gt;&lt;br /&gt;-Directives tell the preprocessor to do things&lt;br /&gt;-Directives always begin with &lt;span style="color:#ff0000;"&gt;#&lt;/span&gt;&lt;br /&gt;-Directives end at the end of the source line&lt;br /&gt;-The &lt;span style="color:#ff0000;"&gt;#include &lt;/span&gt;in the example program tells the preprocessor to insert the code found in the &lt;span style="color:#ff0000;"&gt;stdio.h&lt;/span&gt; file at that location.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Statements&lt;/strong&gt;&lt;br /&gt;-A statement is a HLL instruction that performs a specific operation.&lt;br /&gt;e.g. &lt;span style="color:#ff0000;"&gt;quiz = 20;&lt;/span&gt;&lt;br /&gt;-All single statements end with a semicolon and may extend over multiple lines.&lt;br /&gt;e.g. &lt;span style="color:#ff0000;"&gt;printf("A perfect quiz is %d points.\n", quiz);&lt;/span&gt;&lt;br /&gt;&lt;u&gt;Assignment statement&lt;/u&gt;&lt;br /&gt;-A statement is a complete direction instructing the computer to carry out some task.&lt;br /&gt;e.g. &lt;span style="color:#ff0000;"&gt;x = 2 + 3;&lt;/span&gt;&lt;br /&gt;&lt;u&gt;Compound statement&lt;/u&gt;&lt;br /&gt;-A block, group two or more C statement enclosed in braces&lt;br /&gt;e.g. { printf("Hello");&lt;br /&gt;printf("Class"); }&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Functions&lt;/strong&gt;&lt;br /&gt;-A function is a set of instructions that performs an operation&lt;br /&gt;-A function will always have a name that can be used to reference (or call) the function.&lt;br /&gt;-The function name will be followed by the &lt;em&gt;argument&lt;/em&gt; list in parentheses (sometimes there will be no arguments and so the parentheses will be empty).&lt;br /&gt;&lt;br /&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; DISPLAY: block; CURSOR: hand" id="BLOGGER_PHOTO_ID_5132638686506812514" border="0" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6MuQ0eXbl9R-yIcCLOrH93fL3d2tGOF0JelCqpIY2_S09M2IOEn_-8F6e8Hq47RxQ9eLv7pQ6godcik4LAi3kn1ZifopVuKpvEXc9wvc1kcGEy9JdAnQK7KcjuVx63Uk81WrsJEdNXZo/s320/2.jpg" /&gt;&lt;br /&gt;&lt;strong&gt;Values in C&lt;/strong&gt;&lt;br /&gt;Numeric values&lt;br /&gt;-Real numbers&lt;br /&gt;-Integral number (or whole numbers)&lt;br /&gt;Character values&lt;br /&gt;-ASCII code is an integer value for characters&lt;br /&gt;-The character &lt;strong&gt;'A'&lt;/strong&gt; is the same as &lt;strong&gt;65&lt;/strong&gt; in ASCII&lt;br /&gt;-You can add characters&lt;br /&gt;'A' + ' ' = 'a' 65 + 32 = 97&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;Special ASCII Characters&lt;/strong&gt;&lt;br /&gt;-Special characters have a backslash &lt;strong&gt;&lt;span style="color:#ff0000;"&gt;\&lt;/span&gt;&lt;/strong&gt; followed by a printable character&lt;br /&gt;\0 = Null \t = Horizontal tab&lt;br /&gt;\a = Audible alarm \v = Vertical tab&lt;br /&gt;\b = Backspace \' = Apostrophe&lt;br /&gt;\f = Form feed \" = Quote&lt;br /&gt;\n = New line \? = Question mark&lt;br /&gt;\r = Carriage Return \\ = Backslash&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;Integral Data Types&lt;/strong&gt;&lt;br /&gt;- Basic types&lt;br /&gt;§ Character type &lt;span style="color:#ff0000;"&gt;char&lt;/span&gt;&lt;br /&gt;§ Integer type &lt;span style="color:#ff0000;"&gt;int&lt;/span&gt;&lt;br /&gt;§ Floating type &lt;span style="color:#ff0000;"&gt;float&lt;/span&gt;&lt;br /&gt;§ Valueless type &lt;span style="color:#ff0000;"&gt;void&lt;/span&gt;&lt;br /&gt;- Both can be &lt;span style="color:#ff0000;"&gt;signed&lt;/span&gt; (default) or &lt;span style="color:#ff0000;"&gt;unsigned&lt;/span&gt;&lt;br /&gt;- Type &lt;span style="color:#ff0000;"&gt;int&lt;/span&gt; can be &lt;span style="color:#ff0000;"&gt;short&lt;/span&gt;, &lt;span style="color:#ff0000;"&gt;long&lt;/span&gt;, or neither&lt;br /&gt;- Type &lt;span style="color:#ff0000;"&gt;float&lt;/span&gt; can be &lt;span style="color:#ff0000;"&gt;double&lt;/span&gt;, &lt;span style="color:#ff0000;"&gt;long double&lt;/span&gt;&lt;br /&gt;- Signed allows the value to be negative&lt;br /&gt;- Unsigned allows only positive (and zero)&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; DISPLAY: block; CURSOR: hand" id="BLOGGER_PHOTO_ID_5132638819650798706" border="0" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCxZ3CC94mcE_7ttUIa7rGo13EehoL7QoVVzaDbbZBxMn7TuWCNkuAvvdDiEWQfiQRwwFJcEJAcgfHxMCEbKrDoBlhx3_v5NIZotzYQaVwaAdUfWwkNwT2Rpo-KaRpyy_UrcaslePHE4E/s320/3.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;The &lt;/strong&gt;&lt;span style="color:#ff0000;"&gt;char &lt;/span&gt;&lt;strong&gt;Data Type&lt;/strong&gt;&lt;br /&gt;- Eight bits long&lt;br /&gt;- Used to store characters, but really numbers&lt;br /&gt;- Range for &lt;span style="color:#ff0000;"&gt;signed char&lt;/span&gt; values is &lt;span style="color:#ff0000;"&gt;-128&lt;/span&gt; to &lt;span style="color:#ff0000;"&gt;127&lt;/span&gt;&lt;br /&gt;- Range for &lt;span style="color:#ff0000;"&gt;unsigned char&lt;/span&gt; values is &lt;span style="color:#ff0000;"&gt;0&lt;/span&gt; to &lt;span style="color:#ff0000;"&gt;255&lt;/span&gt;&lt;br /&gt;- Some valid &lt;span style="color:#ff0000;"&gt;char&lt;/span&gt; declarations&lt;br /&gt;&lt;span style="color:#ff0000;"&gt;char&lt;/span&gt; letter;&lt;br /&gt;&lt;span style="color:#ff0000;"&gt;unsigned char&lt;/span&gt; index;&lt;br /&gt;&lt;span style="color:#ff0000;"&gt;char&lt;/span&gt; TopGrade = ‘A’, BottonGrade = ‘F’;&lt;br /&gt;&lt;span style="color:#ff0000;"&gt;char&lt;/span&gt; TopGrade = 65, BottonGrade = 70;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;The &lt;/strong&gt;&lt;span style="color:#ff0000;"&gt;int &lt;/span&gt;&lt;strong&gt;Data Type&lt;/strong&gt;&lt;br /&gt;- Variable length&lt;br /&gt;- Type &lt;span style="color:#ff0000;"&gt;long int&lt;/span&gt; at least as big as &lt;span style="color:#ff0000;"&gt;short int&lt;/span&gt;&lt;br /&gt;- The word &lt;span style="color:#ff0000;"&gt;int&lt;/span&gt; can be implicit&lt;br /&gt;- Some valid &lt;span style="color:#ff0000;"&gt;int&lt;/span&gt; declarations&lt;br /&gt;&lt;span style="color:#ff0000;"&gt;int&lt;/span&gt; currentPage, lastPage;&lt;br /&gt;&lt;span style="color:#ff0000;"&gt;short&lt;/span&gt; age;&lt;br /&gt;&lt;span style="color:#ff0000;"&gt;unsigned&lt;/span&gt; volts = 110;&lt;br /&gt;&lt;span style="color:#ff0000;"&gt;unsigned&lt;/span&gt; volts = ‘n’;&lt;br /&gt;&lt;span style="color:#ff0000;"&gt;unsigned long &lt;/span&gt;nationalDebt;&lt;br /&gt;&lt;span style="color:#ff0000;"&gt;signed short &lt;/span&gt;variance;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Floating Point Data Types&lt;/strong&gt;&lt;br /&gt;-Stored in scientific notation&lt;br /&gt;o Mantissa of significant digits&lt;br /&gt;o Exponent power of 10&lt;br /&gt;-Expressed in standard or scientific notation&lt;br /&gt;o Can use 7146.0 or 7.146e3&lt;br /&gt;-Three flavors (&lt;span style="color:#ff0000;"&gt;float, double, long double&lt;/span&gt;)&lt;br /&gt;o Type &lt;span style="color:#ff0000;"&gt;double&lt;/span&gt; greater than or equal to &lt;span style="color:#ff0000;"&gt;float&lt;/span&gt;&lt;br /&gt;o Type &lt;span style="color:#ff0000;"&gt;long double&lt;/span&gt; greater than or equal to &lt;span style="color:#ff0000;"&gt;double&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Floating Point Forms&lt;/strong&gt;&lt;br /&gt;-A value with a decimal stored as &lt;span style="color:#ff0000;"&gt;double&lt;/span&gt;&lt;br /&gt;-Explicitly assign type&lt;br /&gt;o Use &lt;span style="color:#ff0000;"&gt;F&lt;/span&gt; or &lt;span style="color:#ff0000;"&gt;f&lt;/span&gt; for a &lt;span style="color:#ff0000;"&gt;float&lt;/span&gt; (3.806e-3F or 0.003806F)&lt;br /&gt;o Use &lt;span style="color:#ff0000;"&gt;L&lt;/span&gt; or &lt;span style="color:#ff0000;"&gt;l&lt;/span&gt; for a long double&lt;br /&gt;-Some valid floating point declarations&lt;br /&gt;&lt;span style="color:#ff0000;"&gt;float&lt;/span&gt; wageRate = 12.75;&lt;br /&gt;&lt;span style="color:#ff0000;"&gt;double&lt;/span&gt; area, volume;&lt;br /&gt;&lt;span style="color:#ff0000;"&gt;long double&lt;/span&gt; humongous;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; DISPLAY: block; CURSOR: hand" id="BLOGGER_PHOTO_ID_5132639356521710722" border="0" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjP4Jw1MqQyD-w_Y7LlM4yx1gKfeZgtOr0hmyDhaJAbCEcAcPfnTNucJl31bXsu1ymDPfNz1Bp6iBdg2JJ2q1sS4Sj5BbQ0hXzOCCQhm5hqg_Tg68kR6a81N2solA8Kb31t3c3Tt5ongZY/s320/4.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;String Data&lt;/strong&gt;&lt;br /&gt;- A string is a set of characters&lt;br /&gt;- String values indicated by quotes&lt;br /&gt;o For example, &lt;span style="color:#ff0000;"&gt;“This is a string”&lt;/span&gt;&lt;br /&gt;- The quotes are not part of the string&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="color:#ff0000;"&gt;printf(“This is a string”);&lt;br /&gt;&lt;span style="color:#000000;"&gt;results in&lt;/span&gt;&lt;br /&gt;This is a string&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;More String Data&lt;/strong&gt;&lt;br /&gt;- Adjacent strings are concatenated&lt;br /&gt;o So, “This is just” “one string.” would be stored as This is just one string.&lt;br /&gt;- Remember, no line endings inside a string&lt;br /&gt;- Quote marks within the string are special characters and are indicated by \”&lt;br /&gt;printf(“Her name\nis \”Henrietta.\””);&lt;br /&gt;Her name&lt;br /&gt;is “Henrietta.”&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Variables&lt;/strong&gt;&lt;br /&gt;- Represent a location or locations in memory&lt;br /&gt;- Values are placed there to be used in a program&lt;br /&gt;- Values can change, thus are “variable”&lt;br /&gt;- Variable names are used to reference&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;Variable Names&lt;br /&gt;&lt;/strong&gt;- Length depends on compiler (at least 31)&lt;br /&gt;- Only alpha-numeric (&lt;span style="color:#ff0000;"&gt;A&lt;/span&gt; to &lt;span style="color:#ff0000;"&gt;Z&lt;/span&gt;, &lt;span style="color:#ff0000;"&gt;a&lt;/span&gt; to &lt;span style="color:#ff0000;"&gt;z&lt;/span&gt;, and &lt;span style="color:#ff0000;"&gt;0&lt;/span&gt; to &lt;span style="color:#ff0000;"&gt;9&lt;/span&gt;) characters and the underscore ( &lt;span style="color:#ff0000;"&gt;_&lt;/span&gt; )&lt;br /&gt;- Must begin with alpha or underscore&lt;br /&gt;- No blank space between variable names&lt;br /&gt;- C is case-sensitive&lt;br /&gt;o So &lt;span style="color:#ff0000;"&gt;Total&lt;/span&gt; is different from &lt;span style="color:#ff0000;"&gt;total&lt;/span&gt; and &lt;span style="color:#ff0000;"&gt;toTal&lt;/span&gt;&lt;br /&gt;- No reserved words (also called keywords)&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Variable Declarations&lt;/strong&gt;&lt;br /&gt;- All variables must be declared before used&lt;br /&gt;datatype variable [= initialization]&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="color:#ff0000;"&gt;int frequency;&lt;br /&gt;int StartValue = 14;&lt;br /&gt;&lt;/span&gt;- A declaration does a number of things&lt;br /&gt;o Tells the compiler how to store the value&lt;br /&gt;o Defines it, memory is allocated for it&lt;br /&gt;o May initialize it, giving it an initial value&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Simple Output&lt;/strong&gt;&lt;br /&gt;- Most common output function is &lt;span style="color:#ff0000;"&gt;printf()&lt;/span&gt;&lt;br /&gt;- Uses codes to represent data placement&lt;br /&gt;o Character values represented by &lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="color:#ff0000;"&gt;%c&lt;br /&gt;&lt;/span&gt;o Integer values represented by &lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="color:#ff0000;"&gt;%d&lt;br /&gt;&lt;/span&gt;o Float values represented by &lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="color:#ff0000;"&gt;%f&lt;br /&gt;&lt;/span&gt;o ASCII values for characters can be printed by using the integer code &lt;span style="color:#ff0000;"&gt;%d&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Conversion Characters&lt;/strong&gt;&lt;br /&gt;%s string of character&lt;br /&gt;%c character&lt;br /&gt;%d decimal integer&lt;br /&gt;%f floating-point numbers&lt;br /&gt;%e exponential notation&lt;br /&gt;%o octal integer&lt;br /&gt;%x hexadecimal integer&lt;br /&gt;%% percent sign (%)&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Example of Output&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;Program&lt;/strong&gt; :&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="color:#ff0000;"&gt;#include &lt;stdio.h&gt;&lt;br /&gt;void main(void)&lt;br /&gt;{&lt;br /&gt;printf(“Here is the character %c,\n”, ‘X’);&lt;br /&gt;printf(“and the numbers %d and %f.\n”, 46, 12.345);&lt;br /&gt;printf(“Now we will print %d as a number.\n”, ‘X’);&lt;br /&gt;printf(“Things will really be messed up if we confuse\n”&lt;br /&gt;“data types, such as %f and %d.\n”, 46, 12.345);&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;strong&gt;Output&lt;/strong&gt;:&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="color:#ff0000;"&gt;Here is the character X,&lt;br /&gt;and the numbers 46 and 12.345.&lt;br /&gt;Now we will print 88 as a number.&lt;br /&gt;Things will really be messed up if we confuse&lt;br /&gt;data types, such as -2.19317e-73 and 16424.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;Expression&lt;/strong&gt;&lt;br /&gt;- Anything that evaluates to a numeric value&lt;br /&gt;- consist of a single item, simple variable, literal constant or symbolic constant&lt;br /&gt;e.g.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="color:#ff0000;"&gt;2 + 3;&lt;br /&gt;&lt;/span&gt;or&lt;br /&gt;&lt;span style="color:#ff0000;"&gt;rate * 5;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Operators&lt;/strong&gt;&lt;br /&gt;- An operator is a symbol that performs a specific mathematical or logical operation&lt;br /&gt;- Types of operators&lt;br /&gt;· arithmetic&lt;br /&gt;· assignment&lt;br /&gt;· equality&lt;br /&gt;· relational&lt;br /&gt;· logical&lt;br /&gt;· Increment and Decrement operators&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Arithmetic Expressions&lt;/strong&gt;&lt;br /&gt;- Anything reducible to a single value&lt;br /&gt;- Consists of values and/or variables connected by arithmetic operators&lt;br /&gt;- Precedence determines what operator gets done first&lt;br /&gt;- Associativity dictates the order if two operators have the same precedence&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;RULES OF OPERATOR PRECEDENCE&lt;/strong&gt;&lt;br /&gt;1. Parentheses &lt;span style="color:#ff0000;"&gt;&lt;strong&gt;( )&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;2. Multiplication &lt;span style="color:#ff0000;"&gt;&lt;strong&gt;*&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;Division &lt;strong&gt;&lt;span style="color:#ff0000;"&gt;/&lt;/span&gt;&lt;br /&gt;&lt;/strong&gt;Modulus &lt;strong&gt;&lt;span style="color:#ff0000;"&gt;%&lt;/span&gt;&lt;br /&gt;&lt;/strong&gt;3. Addition &lt;strong&gt;&lt;span style="color:#ff0000;"&gt;+&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;Subtraction &lt;strong&gt;&lt;span style="color:#ff0000;"&gt;-&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Integer Arithmetic&lt;/strong&gt;&lt;br /&gt;- Result is integer&lt;br /&gt;- Be careful result is not too big&lt;br /&gt;o For example, &lt;span style="color:#ff0000;"&gt;32000 * 10&lt;/span&gt; can result in &lt;span style="color:#ff0000;"&gt;-7680&lt;/span&gt;&lt;br /&gt;- Division truncates any fractions&lt;br /&gt;o The result of &lt;span style="color:#ff0000;"&gt;3 / 2&lt;/span&gt; is &lt;span style="color:#ff0000;"&gt;1&lt;/span&gt;, not &lt;span style="color:#ff0000;"&gt;1.5&lt;/span&gt;&lt;br /&gt;- Remainder (or modulo or modulus)&lt;br /&gt;o Only good with positive integers&lt;br /&gt;o The result of &lt;span style="color:#ff0000;"&gt;14 % 10&lt;/span&gt; is &lt;span style="color:#ff0000;"&gt;4&lt;/span&gt;, &lt;span style="color:#ff0000;"&gt;3 % 10&lt;/span&gt; is &lt;span style="color:#ff0000;"&gt;3&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Mixed Arithmetic&lt;/strong&gt;&lt;br /&gt;- Result is the highest data type used&lt;br /&gt;- Highest data type takes most memory&lt;br /&gt;o Floats are higher than Integers&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;table border="1" width="40%"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;thead&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;th&gt;Assignment Operator&lt;/th&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;th&gt;Sample Expression&lt;/th&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/thead&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;td&gt;&lt;span style="color:#ff0000;"&gt;+=&lt;/span&gt;&lt;/td&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;td&gt;c+=7&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;td&gt;&lt;span style="color:#ff0000;"&gt;-=&lt;/span&gt;&lt;/td&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;td&gt;d-=4&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;td&gt;&lt;span style="color:#ff0000;"&gt;*=&lt;/span&gt;&lt;/td&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;td&gt;e*=5&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;td&gt;&lt;span style="color:#ff0000;"&gt;/=&lt;/span&gt;&lt;/td&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;td&gt;f/=3&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;td&gt;&lt;span style="color:#ff0000;"&gt;%=&lt;/span&gt;&lt;/td&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;td&gt;g%=9&lt;/td&gt;&lt;br /&gt;&lt;strong&gt;Example&lt;/strong&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Equality&lt;/strong&gt;&lt;br /&gt;To determine whether two items are equal to one another.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;table&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;thead&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;th&gt;&lt;strong&gt;&lt;u&gt;C equality&lt;/u&gt;&lt;/strong&gt;&lt;/th&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;th&gt;&lt;strong&gt;&lt;u&gt;standard algebraic&lt;/u&gt;&lt;/strong&gt;&lt;/th&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;td&gt;== (x == 100)&lt;/td&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;center&gt;=&lt;/center&gt;&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;td&gt;!= (5 != x)&lt;/td&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;center&gt;≠&lt;/center&gt;&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/tbody&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Relational&lt;/strong&gt;&lt;br /&gt;C provides a set of relational that allows you to compare numbers.&lt;br /&gt;&lt;strong&gt;Operator&lt;/strong&gt; &lt;strong&gt;Example&lt;/strong&gt;&lt;br /&gt;&amp;gt; x&amp;gt;100&lt;br /&gt;&amp;gt;= x&amp;gt;=20&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;Logical&lt;/strong&gt;&lt;br /&gt;C provides a set of logical that are used to combine expressions into logical expression&lt;br /&gt;&lt;strong&gt;Operator&lt;br /&gt;&lt;/strong&gt;&lt;span style="color:#ff0000;"&gt;&lt;strong&gt;&amp;amp;&amp;amp;&lt;/strong&gt; &lt;/span&gt;logical &lt;span style="color:#ff0000;"&gt;&lt;strong&gt;AND&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;span style="color:#ff0000;"&gt;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;&lt;/span&gt;&lt;strong&gt;&lt;span style="color:#ff0000;"&gt;II&lt;/span&gt;&lt;/strong&gt; logical &lt;span style="color:#ff0000;"&gt;&lt;strong&gt;OR&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Increment &amp;amp; Decrement&lt;/strong&gt;&lt;br /&gt;&lt;span style="color:#ff0000;"&gt;&lt;strong&gt;++ ++a&lt;/strong&gt;&lt;/span&gt; = increment a by 1 then use the new value of a in the expression in which a resides&lt;br /&gt;&lt;span style="color:#ff0000;"&gt;&lt;strong&gt;++ a++&lt;/strong&gt;&lt;/span&gt; = use the current value of a in the expression in which a resides, then increment a by 1&lt;br /&gt;&lt;span style="color:#ff0000;"&gt;&lt;strong&gt;-- --a&lt;/strong&gt;&lt;/span&gt; = decrement a by 1 then use the new value of a in the expression in which a resides&lt;br /&gt;&lt;span style="color:#ff0000;"&gt;&lt;strong&gt;-- a--&lt;/strong&gt;&lt;/span&gt; = use the current value of a in the expression in which a resides, then decrement a by 1&lt;/span&gt;&lt;/p&gt;</description><link>http://note-for-it.blogspot.com/2007/11/c-language.html</link><author>noreply@blogger.com (Han)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicbb3O_ir3I93iasNsvUQBQfFM4N9DFrxC9AuOCz3Cf7OvtGrA9Nz45MiWd4Zx0JTkg7rS307oPOFB75uQJEllvSt1m0kIKGxJpxwDi2X_l5O5axoq2XAO6LUghzZiLhVqIeTk17P944Y/s72-c/1.jpg" width="72"/><thr:total>0</thr:total></item></channel></rss>