SlideShare a Scribd company logo
1 of 33
Sıralama

ALGORİTMA VE PROGRAMLAMA
SIRALAMA
Sıralama, bir dizideki sayısal elemanların
küçükten büyüğe veya büyükten küçüğe,
sayısal olmayan bir dizideki elemanların ise
A’ dan Z’ ye veya Z’ den A’ ya sıralama
işlemidir. Sıralama işlemi örnekler yardımıyla
açıklanacaktır.
En çok kullanılan sıralama algoritmalarından
biri “Seçimli Sıralama, Selection Sort”
algoritmasında, dizideki ilk elemandan
başlayarak, her bir eleman kendisinden
sonra gelen diğer elemanlarla karşılaştırılır
(1. eleman 2, 3, …, n. elamanlarla, 2. eleman
3, 4, …, n. elemanlarla).
 Gerekiyorsa elemanların yerleri değiştirilir.
ÖRNEK: 5 ELEMANLı SAYıSAL BIR DIZININ KÜÇÜKTEN
BÜYÜĞE SıRALANMASı

 Küçükten büyüğe doğru sıralanmak istenilen
 dizi elemanları:

  Eleman   1     2      3     4      5
    no
  Eleman   22    43    24     9      45
ADıM 1: DIZIDEKI EN KÜÇÜĞÜN BULUNUP DIZININ ILK
ELEMANı OLARAK BELIRLENMESI

                        Dizi Elemanları

iterasyon   1      2          3           4    5

   1        22     43         24          9    45

   2        22     43         24          9    45

   3        22     43         24          9    45

   4        9      43         24          22   45

   5        9      43         24          22   45
1. adımda dizideki eleman sayısı kadar işlem
yapılarak dizideki en küçük eleman bulunarak ilk
sıraya alınmıştır.

İlk işlemde 22 ile 43 karşılaştırılmış, önceki sırada
olan sonrakinden küçük olduğundan değişim
yapılmamıştır. 3. işlemde dizinin 1. ile 4. elemanı
karşılaştırılmış, 9 daha küçük olduğundan 1 ile 4.
eleman yer değiştirmiştir.
ADıM 2: DIZIDEKI 2. EN KÜÇÜĞÜN BULUNUP DIZININ 2.
ELEMANı OLARAK BELIRLENMESI

                          Dizi Elemanları

iterasyon
            1         2         3           4       5


   1        9        43         24          22      45


   2        9        24         43          22      45


   3        9        22         43          24      45


   4        9        22         43          24      45
ADıM 3: DIZIDEKI 3. EN KÜÇÜĞÜN BULUNUP DIZININ 3.
 ELEMANı OLARAK BELIRLENMESI

                            Dizi Elemanları

iterasyon

             1         2          3           4      5



   1         9        22          43          24     45



   2         9        22          24          43     45



   3         9        22          24          43     45
ADıM 4: DIZIDEKI 4. EN KÜÇÜĞÜN BULUNUP DIZININ 4.
ELEMANı OLARAK BELIRLENMESI

                              Dizi

İşlem no


            1         2        3         4          5




   1        9        22        24        43         45




   2        9        22        24        43         45
Sıralı dizi:
 Eleman        1   2    3    4    5
   no




 Eleman        9   22   24   43   45
YUKARıDAKI DIZININ SıRALANMASıNA AIT PROGRAM ŞU
ŞEKILDEDIR:

   // siralamaSecmeli.cpp : main project file.

   #include "stdafx.h"
   #include <iostream>
   #include <iomanip>
   #include <conio.h>

   using namespace std;

   int dizi[] = {22, 43, 24, 9, 45};
   int N = 5;
   int i, j, gecici;
   int main()
   {
      cout << "Siralanmamis dizinn";
        cout << "No Elemann";
        cout << "-- ------n";
        for (i=0; i<N; i++)
                  cout << setw(2) << (i+1)
          << setw(6) << dizi[i]
          << endl;
       for (i=0; i<N-1; i++)
       for (j=i+1; j<N; j++)
       if (dizi[i]>dizi[j])
   {
                 gecici = dizi[i];
       dizi[i] = dizi[j];
       dizi[j] = gecici;
   }
          cout << "nSirali dizinn";
          cout << "No Elemann";
          cout << "-- ------n";
          for (i=0; i<N; i++)
          cout << setw(2) << (i+1)
            << setw(6) << dizi[i]
            << endl;
          getch();
       return 0;
   }
ÖRNEK: GIRILEN 5 ADET ISMIN A’DAN Z’YE
SıRALANMASı
 Sayısal olmayan bilgilerin sıralanmasında, dizi
 elemanları      karşılaştırılırken    birbirine eşit,
 birbirinden büyük veya küçük olmaları ==, > ve <
 gibi semboller ile karşılaştırılamaz.

 Yani
    dizi[i] < dizi[j]
 şeklinde bir ifade kullanılamaz.
Bunun yerine, sayısal olmayan bilgilerin
karşılaştırılmasında strcmp() fonksiyonu
kullanılması gerekmektedir.

strcmp( dizi[i], dizi[j])

strcmp( isim, aranan)

strcmp( isim, “Ali”)
strcmp() fonksiyonu iki değişkenin birbirine
eşit olup olmama, alfabetik olarak hangisinin
daha önce veya daha sonra geldiğine göre
farklı sayısal değerler üretir.
strcmp(isim, aranan) örneğine göre

 isim değişkeninin değeri aranan
  değişkeninin değerine eşitse strcmp()
  fonksiyonu 0,
 isim, aranan değişkenine göre alfabetik
  olarak daha önce geliyorsa negatif bir sayı,
 tersi durumda ise pozitif bir sayı üretir.
   // siralaKarakter.cpp : main project file.

   #include "stdafx.h"
   #include <iostream>
   #include <iomanip>
   #include <conio.h>

   using namespace std;

   char Ad[5][15], Gecici[15];
   int N = 5;
   int i, j;
       int main(array<System::String ^> ^args)
   {
          for (i=0; i<N; i++)
         {
          cout << (i+1) << ". kisi ismi: ";
          cin >> Ad[i];
         }
      for (i=0; i<N-1; i++)
   for (j=i+1; j<N; j++)
    if (strcmp( Ad[i], Ad[j] ) > 0)
    {
      strcpy( Gecici, Ad[i] );
      strcpy( Ad[i], Ad[j] );
      strcpy( Ad[j], Gecici );
    }
    cout << "nSirali dizin";
         cout << "-----------n";
         for (i=0;i<N;i++)
                   cout << Ad[i]<<endl;
         getch();
      return 0;
   }
ÖRNEK:

 Günlük     sıcaklık   değerleri   klavyeden
 bilgisayara girildiğinde, sıcaklığa göre
 büyükten küçüğe sıralı listeyi oluşturan bir
 program yazınız?
   / sicaklik.cpp : main project file.

   #include "stdafx.h"
   #include <iostream>
   #include <iomanip>
   #include <conio.h>

   using namespace std;

   char Gun[7][15], B[15];
    int Sicaklik[7], S;
    int i,j;
          int main()
   {
       for (i=0; i<7; i++)
          {
          cout << (i+1) << ". gun ";
          cin>>Gun[i];
          cout << "sicaklik degeri: ";
          cin >> Sicaklik[i];
          }
   for (i=0; i<6; i++)
    for (j=i+1; j<7; j++)
     if (Sicaklik[i] < Sicaklik[j])
     {
       S = Sicaklik[i];
       Sicaklik[i] = Sicaklik[j];
       Sicaklik[j] = S;

         strcpy( B, Gun[i] );
         strcpy( Gun[i], Gun[j] );
         strcpy( Gun[j], B );
     }
          cout << "nnGunler        Sicaklikn";
          cout << "--------------- --------n";
          cout << setiosflags(ios::left); //sola dayali format
          for (i=0;i<7;i++)
                    cout << setw(16) << Gun[i]
            << Sicaklik[i] << endl;
          getch();
       return 0;
   }
ÖDEV:    10 öğrencinin bulunduğu bir
sınıfta, öğrenci adı, soyadı, vize ve
final    notunu    dizi    veri    tipine
kaydeden, vize ve finalin %50’sini
alarak   başarı   notunu    hesap   eden,
girilen verileri ve başarı notunu
listeleyen, isme göre arama yapan,
vize   notuna   göre    küçükten   büyüğe
sıralayan, başarı notu 50’nin üzerinde
olanları    listeleyen     bir    program
yazınız?

More Related Content

Featured

How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
ThinkNow
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
Kurio // The Social Media Age(ncy)
 

Featured (20)

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 

Sunu algo10

  • 3. Sıralama, bir dizideki sayısal elemanların küçükten büyüğe veya büyükten küçüğe, sayısal olmayan bir dizideki elemanların ise A’ dan Z’ ye veya Z’ den A’ ya sıralama işlemidir. Sıralama işlemi örnekler yardımıyla açıklanacaktır.
  • 4. En çok kullanılan sıralama algoritmalarından biri “Seçimli Sıralama, Selection Sort” algoritmasında, dizideki ilk elemandan başlayarak, her bir eleman kendisinden sonra gelen diğer elemanlarla karşılaştırılır (1. eleman 2, 3, …, n. elamanlarla, 2. eleman 3, 4, …, n. elemanlarla). Gerekiyorsa elemanların yerleri değiştirilir.
  • 5. ÖRNEK: 5 ELEMANLı SAYıSAL BIR DIZININ KÜÇÜKTEN BÜYÜĞE SıRALANMASı Küçükten büyüğe doğru sıralanmak istenilen dizi elemanları: Eleman 1 2 3 4 5 no Eleman 22 43 24 9 45
  • 6. ADıM 1: DIZIDEKI EN KÜÇÜĞÜN BULUNUP DIZININ ILK ELEMANı OLARAK BELIRLENMESI Dizi Elemanları iterasyon 1 2 3 4 5 1 22 43 24 9 45 2 22 43 24 9 45 3 22 43 24 9 45 4 9 43 24 22 45 5 9 43 24 22 45
  • 7. 1. adımda dizideki eleman sayısı kadar işlem yapılarak dizideki en küçük eleman bulunarak ilk sıraya alınmıştır. İlk işlemde 22 ile 43 karşılaştırılmış, önceki sırada olan sonrakinden küçük olduğundan değişim yapılmamıştır. 3. işlemde dizinin 1. ile 4. elemanı karşılaştırılmış, 9 daha küçük olduğundan 1 ile 4. eleman yer değiştirmiştir.
  • 8. ADıM 2: DIZIDEKI 2. EN KÜÇÜĞÜN BULUNUP DIZININ 2. ELEMANı OLARAK BELIRLENMESI Dizi Elemanları iterasyon 1 2 3 4 5 1 9 43 24 22 45 2 9 24 43 22 45 3 9 22 43 24 45 4 9 22 43 24 45
  • 9. ADıM 3: DIZIDEKI 3. EN KÜÇÜĞÜN BULUNUP DIZININ 3. ELEMANı OLARAK BELIRLENMESI Dizi Elemanları iterasyon 1 2 3 4 5 1 9 22 43 24 45 2 9 22 24 43 45 3 9 22 24 43 45
  • 10. ADıM 4: DIZIDEKI 4. EN KÜÇÜĞÜN BULUNUP DIZININ 4. ELEMANı OLARAK BELIRLENMESI Dizi İşlem no 1 2 3 4 5 1 9 22 24 43 45 2 9 22 24 43 45
  • 11. Sıralı dizi: Eleman 1 2 3 4 5 no Eleman 9 22 24 43 45
  • 12. YUKARıDAKI DIZININ SıRALANMASıNA AIT PROGRAM ŞU ŞEKILDEDIR:  // siralamaSecmeli.cpp : main project file.  #include "stdafx.h"  #include <iostream>  #include <iomanip>  #include <conio.h>  using namespace std;  int dizi[] = {22, 43, 24, 9, 45};  int N = 5;  int i, j, gecici;
  • 13. int main()  {  cout << "Siralanmamis dizinn";  cout << "No Elemann";  cout << "-- ------n";  for (i=0; i<N; i++)  cout << setw(2) << (i+1)  << setw(6) << dizi[i]  << endl;
  • 14. for (i=0; i<N-1; i++)  for (j=i+1; j<N; j++)  if (dizi[i]>dizi[j])  {  gecici = dizi[i];  dizi[i] = dizi[j];  dizi[j] = gecici;  }
  • 15. cout << "nSirali dizinn";  cout << "No Elemann";  cout << "-- ------n";  for (i=0; i<N; i++)  cout << setw(2) << (i+1)  << setw(6) << dizi[i]  << endl;  getch();  return 0;  }
  • 16.
  • 17. ÖRNEK: GIRILEN 5 ADET ISMIN A’DAN Z’YE SıRALANMASı Sayısal olmayan bilgilerin sıralanmasında, dizi elemanları karşılaştırılırken birbirine eşit, birbirinden büyük veya küçük olmaları ==, > ve < gibi semboller ile karşılaştırılamaz. Yani dizi[i] < dizi[j] şeklinde bir ifade kullanılamaz.
  • 18. Bunun yerine, sayısal olmayan bilgilerin karşılaştırılmasında strcmp() fonksiyonu kullanılması gerekmektedir. strcmp( dizi[i], dizi[j]) strcmp( isim, aranan) strcmp( isim, “Ali”)
  • 19. strcmp() fonksiyonu iki değişkenin birbirine eşit olup olmama, alfabetik olarak hangisinin daha önce veya daha sonra geldiğine göre farklı sayısal değerler üretir.
  • 20. strcmp(isim, aranan) örneğine göre  isim değişkeninin değeri aranan değişkeninin değerine eşitse strcmp() fonksiyonu 0,  isim, aranan değişkenine göre alfabetik olarak daha önce geliyorsa negatif bir sayı,  tersi durumda ise pozitif bir sayı üretir.
  • 21. // siralaKarakter.cpp : main project file.  #include "stdafx.h"  #include <iostream>  #include <iomanip>  #include <conio.h>  using namespace std;  char Ad[5][15], Gecici[15];  int N = 5;  int i, j;
  • 22. int main(array<System::String ^> ^args)  {  for (i=0; i<N; i++)  {  cout << (i+1) << ". kisi ismi: ";  cin >> Ad[i];  }
  • 23. for (i=0; i<N-1; i++)  for (j=i+1; j<N; j++)  if (strcmp( Ad[i], Ad[j] ) > 0)  {  strcpy( Gecici, Ad[i] );  strcpy( Ad[i], Ad[j] );  strcpy( Ad[j], Gecici );  }
  • 24. cout << "nSirali dizin";  cout << "-----------n";  for (i=0;i<N;i++)  cout << Ad[i]<<endl;  getch();  return 0;  }
  • 25.
  • 26. ÖRNEK: Günlük sıcaklık değerleri klavyeden bilgisayara girildiğinde, sıcaklığa göre büyükten küçüğe sıralı listeyi oluşturan bir program yazınız?
  • 27. / sicaklik.cpp : main project file.  #include "stdafx.h"  #include <iostream>  #include <iomanip>  #include <conio.h>  using namespace std;  char Gun[7][15], B[15];  int Sicaklik[7], S;  int i,j;
  • 28. int main()  {  for (i=0; i<7; i++)  {  cout << (i+1) << ". gun ";  cin>>Gun[i];  cout << "sicaklik degeri: ";  cin >> Sicaklik[i];  }
  • 29. for (i=0; i<6; i++)  for (j=i+1; j<7; j++)  if (Sicaklik[i] < Sicaklik[j])  {  S = Sicaklik[i];  Sicaklik[i] = Sicaklik[j];  Sicaklik[j] = S;  strcpy( B, Gun[i] );  strcpy( Gun[i], Gun[j] );  strcpy( Gun[j], B );  }
  • 30. cout << "nnGunler Sicaklikn";  cout << "--------------- --------n";  cout << setiosflags(ios::left); //sola dayali format  for (i=0;i<7;i++)  cout << setw(16) << Gun[i]  << Sicaklik[i] << endl;  getch();  return 0;  }
  • 31.
  • 32.
  • 33. ÖDEV: 10 öğrencinin bulunduğu bir sınıfta, öğrenci adı, soyadı, vize ve final notunu dizi veri tipine kaydeden, vize ve finalin %50’sini alarak başarı notunu hesap eden, girilen verileri ve başarı notunu listeleyen, isme göre arama yapan, vize notuna göre küçükten büyüğe sıralayan, başarı notu 50’nin üzerinde olanları listeleyen bir program yazınız?