Yerleştirmeli ve kabuk sıralama
#include <iostream>
using namespace std;
// YERLESTIRMELI SIRALAMA ALGORITMASI
void yerlestirmeli(int deneme[], int n){
for(int i=1; i<n; i++){
int anahtar = deneme[i];
int j = i-1;
while((j>=0) && (deneme[j]>anahtar)){
deneme[j+1] = deneme[j];
j--;
}
deneme[j+1] = anahtar;
}
}
// KABUK SIRALAMA ALGORITMASI
void kabuk(int deneme[], int n){
for (int a=n/2; a>0; a=a/2)
for(int i=a; i<n; i++){
int temp = deneme[i];
int j;
for(j=i; (j>=a)&&(deneme[j-a]>temp); j=j-a)
deneme[j] = deneme[j-a];
deneme[j] = temp;
}
}
int main()
{
int dizi[5] = {24, 12, 50, 60, 2};
int elemansayisi = 5;
// Yerlestirmeli siralama yap
yerlestirmeli(dizi, elemansayisi);
// Kabuk siralama yap
kabuk(dizi, elemansayisi);
for(int i=0;i<elemansayisi;i++){
cout<<dizi[i]<<endl;
}
return 0;
}
Hızlı sıralama
#include <iostream>
using namespace std;
int bolumlendir(int dizi[], int k, int b){
int pivot = dizi[b];
int i = k - 1;
for(int j = k; j<=b; 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[b];
dizi[b] = temp;
return(i+1);
}
void sirala(int dizi[], int kucuk, int buyuk){
if(kucuk<buyuk){
int bi = bolumlendir(dizi, kucuk, buyuk);
sirala(dizi, kucuk, bi-1);
sirala(dizi, bi+1, buyuk);
}
}
int main()
{
int dizi[10] = {50, 32, 26, 90, 0, -12, -44, 67, 79, 81};
sirala(dizi,0, 5);
for(int i=0; i<10; i++)
cout<<dizi[i]<<endl;
}
Bunu beğen:
Beğen Yükleniyor...
İlgili