05
Nis
2022

Veri yapıları ve algoritmalar dersi 6. slayt – Sıralama algoritmaları

Slayt ana hatları

Please wait while flipbook is loading. For more related info, FAQs and issues please refer to DearFlip WordPress Flipbook Plugin Help documentation.

 

Kabarcık sıralama (bubble sort)

Seçmeli sıralama (selection sort)

Yerleştirmeli sıralama (insertion sort)

Kabuk sıralama (shell sort)

Hızlı sıralama (quick sort)

Kaynak kod

#include<iostream>
using namespace std;
// Kabarcık sıralama *************************************************************************
void bubbleSort(int dizi[], int n) 
{ 
    int i, j; 
    for (i = 0; i < n; i++)     
      for (j = 0; j < n-1; j++) 
    	    if (dizi[j] > dizi[j+1]) 
       	    {
        		int temp = dizi[j];
        		dizi[j] = dizi[j+1];
        		dizi[j+1] = temp;
            }
} 

// Yerleştirmeli sıralama 
void insertionSort(int dizi[], int n)
{
  int i, j, anahtar;
  for(i = 1; i<n; i++)
  {
    anahtar = dizi[i];
    j = i-1;
    while(j>=0 && dizi[j]>anahtar)
    {
      dizi[j+1] = dizi[j];
      j = j-1;
    }	
    dizi[j+1] = anahtar;
  }
}

// Seçmeli sıralama
void selectionSort(int dizi[], int n)
{
  int enkucuk, yedek;
    for (int i = 0; i < n-1; i++)
    {
    	enkucuk = i;
    	for (int j = i+1; j < n; j++)
    	{
           if (dizi[j]<dizi[enkucuk])
           {
              enkucuk = j;
           }
    	}
    	if (enkucuk != i)
    	{
           yedek = dizi[i];
           dizi[i] = dizi[enkucuk];
           dizi[enkucuk] = yedek;
    	}               
  }
}

// Kabuk sıralama 
void shellSort(int dizi[], int n) 
{
  for (int a = n / 2; a > 0; a /= 2) 
  {
     for (int i = a; i < n; i += 1) 
     {
        int temp = dizi[i];
        int j;
        for (j = i; j >= a && dizi[j - a] > temp; j -= a) 
      {
           dizi[j] = dizi[j - a];
      }
      dizi[j] = temp;
    }
  }
}

// Hızlı sıralama 
int bolumlendir (int dizi[], int kucuk, int buyuk)
{
    int pivot = dizi[buyuk]; 
    int i = (kucuk - 1); 
 
    for (int j = kucuk; j <= buyuk - 1; j++)
    {
        if (dizi[j] < pivot)
        {
            i++; 
            int temp = dizi[i];
            dizi[i] = dizi[j];
            dizi[j] = temp; 
        }
    }
    int temp = dizi[i+1];
    dizi[i+1] = dizi[buyuk];
    dizi[buyuk] = temp;
    return (i + 1);
}

void quickSort(int dizi[], int kucuk, int buyuk)
{
    if (kucuk < buyuk)
    {
        int pi = bolumlendir(dizi, kucuk, buyuk);
        quickSort(dizi, kucuk, pi - 1);
        quickSort(dizi, pi + 1, buyuk);
    }
}

// Ana fonksiyon
main()
{
  int dizi[5] = {10, 6, 8, 11, 2};
  
  bubbleSort(dizi, 5);
  insertionSort(dizi, 5);
  selectionSort(dizi, 5);
  shellSort(dizi,5);
  quickSort(dizi, 0, 4);
  
  for(int i = 0; i<5; i++)
    cout<<dizi[i]<<"  ";
}

 

%d blogcu bunu beğendi: