Medical Informatics
Algorithm
Fatma Önay Koçoğlu, Çiğdem Selçukcan ErolThroughout our life, we face many problems and try to find solutions for these problems. While producing solutions, we do not think about a single solution, we consider all possible solutions and try to choose the most correct and logical for that moment. The solutions we have developed to solve the problem usually require following certain steps or rules. We define this process as algorithm. That is why algorithms are present in almost every area of our lives. People use an algorithmic solution, whether they are aware of it or not, to catch up to work in the morning or in meetings with patients as a doctor. When a code is to be written to solve a problem in computers, the problem is addressed first, and the solution steps that lead to the right result as soon as possible are determined. Algorithms are obtained by expressing these steps in a clear and simple way within the framework of certain rules. Some situations arise after the development of algorithms. These are expressing the algorithm in a common language, the specific structures used in the algorithm, and determining which algorithm will provide the best solution. The solution developer can write the algorithm in her/his native language, but the algorithm is transformed into a different form by using some shapes to meet a common expression language so that the developed solution can be understood by everyone. This form is expressed as a flowchart. Various structures are used in both algorithms and flowcharts. For example, if there is more than one option in a solution step and one of these options must be selected according to the situation, then, at this point, the role of decision-making action emerges. Accordingly, sequential, decision, and loop structures are used. More than one algorithm can be developed to solve a problem. All these developed algorithms can be used. However, the problem of which algorithm to choose is encountered. The complexity of the algorithm is determined in the solution of this problem.Considering all these issues, algorithm development is an issue that needs to be addressed comprehensively before developing a computer program or a system. This section describes what algorithm is as a problem-solving approach, how it can be developed, and provide and explain basic information with examples.
Algoritma
Fatma Önay Koçoğlu, Çiğdem Selçukcan ErolYaşamımız süresince birçok problem ile karşı karşıya kalmakta ve bu problemler için çözümler üretmeye çalışmaktayız. Çözümler üretirken tek bir çözüm üzerinde düşünmemekte, olası tüm çözümleri göz önüne alıp o an için en doğru ve mantıklı olanını seçmeye çalışmaktayız. Problemi çözmek üzere geliştirdiğimiz çözüm yolları genellikle belirli adımların veya kuralların izlenmesini gerektirmektedir. Bu süreç algoritma olarak tanımlanmaktadır. Algoritmalar hayatımızın hemen her alanında yer almaktadır. Sabah işe yetişmek için de, hekim olarak hastalarla görüşmelerde de farkında olarak ya da olmayarak algoritma kullanılmaktadır. Bilgisayarlarda da bir problemin çözümü için kod yazılacağı zaman öncelikle problem ele alınmakta, mümkün olduğunca kısa zamanda ve doğru sonuca ulaştıran çözüm adımları belirlenmektedir. Bu adımların belirli kurallar çerçevesinde anlaşılır ve sade bir şekilde ifade edilmesi ile algoritmalar elde edilmektedir. Algoritmalar geliştirildikten sonra bazı durumlar karşımıza çıkmaktadır. Bunlar, ortak bir dilde algoritmayı ifade etme, algoritma içerisinde kullanılan belirli yapılar ve hangi algoritmanın en iyi çözümü sağlayacağının belirlenmesidir. Çözüm geliştirici algoritmayı kendi anadilinde yazabilir, ancak ortak bir anlatım dilinde buluşabilmek böylece geliştirilen çözümün herkes tarafından anlaşılabilir olması için algoritma şekilsel bazı ifadeler kullanılarak farklı bir forma dönüştürülür. Bu form akış diyagramı olarak ifade edilmektedir. Hem algoritmalarda hem de akış diyagramında çeşitli yapılar kullanılmaktadır. Örneğin bir çözüm adımında birden fazla seçenek söz konusu ise ve duruma göre bu seçeneklerden biri seçilmesi gerekiyorsa bu noktada karar verme eylemi karşımıza çıkmaktadır. Bu doğrultuda sıralı, karar ve tekrarlı işlem yapıları kullanılmaktadır. Daha önce de ifade edildiği gibi, bir problemin çözümü için birden fazla algoritma geliştirilebilir. Geliştirilen bu algoritmaların hepsi de kullanılabilir. Ancak burada da hangi algoritmanın seçileceği problemi ile karşı karşıya kalınmaktadır. Bu problemin çözümünde algoritma karmaşıklığı belirlenmektedir. Belirtilen tüm bu hususlar göz önünde bulundurulduğunda algoritma geliştirme bir bilgisayar programı veya bir sistem geliştirmeden önce kapsamlı şekilde ele alınması gereken bir konudur. Bu bölümde problem çözme yaklaşımlarından biri olan algoritmanın ne olduğu, nasıl geliştirilebileceği ve algoritma ile ilgili temel bilgiler verilmiş, örneklerle açıklanmıştır.