Programlama | Programlama Dilleri | C Programlama Dili |C++

Anasayfa Programlama C / C++ Sayı Sırala (Hızlı Sıralama)


Sayı Sırala (Hızlı Sıralama)

AÇIKLAMA

Sayılar dosyanın içine atılır ve programda dosya yolu girilir.

Ör:

C:\sayilar.txt

daha sonra isteğe bağlı olarak girilen K değeri ile en küçük K değerindeki sayı bulunur.

Dosya

10
9
8
5
4
2
 
olsun

K değerini 3 girerseniz Bu durumda en küçük 3.Sayı olan 5 değeri ve bulunma zamanı geri dondurulur.

Programın Tamamını Aşağıdaki Linkten İndirebilirsiniz

Linki Görebilmeniz İçin Üye Olmanız Gerekmektedir...

Üye Kayıt

Program Kodu:

  1. //---------------------------------------------------------------------------
  2.  
  3. #include <vcl.h>
  4. #pragma hdrstop
  5. #include "string.h"
  6. #include "stdio.h"
  7. #include "conio.h"
  8. #include "stdlib.h"
  9. #include "iostream.h"
  10. #include "time.h"
  11. void hizli_sirala(int dizi[], int sol, int sag);
  12. //---------------------------------------------------------------------------
  13.  
  14. #pragma argsused
  15. int main(int argc, char* argv[])
  16. {
  17. clock_t bir,iki,fark;
  18.  
  19. FILE *f;
  20. int sayilar[100000];
  21.  
  22. for(int y=0;y<100000;y++)
  23. {
  24. sayilar[y]=0;
  25. }
  26.  
  27. char satir[10];
  28. char *sayimiz;
  29. string yol;  int sira;  int sayi,sag,sol,orta;  int index=0;
  30. string  mesaj="Dosya Yolunu Giriniz:\n";
  31. cout<<mesaj;
  32. cin>>yol;
  33. bir=clock();
  34. if((f=fopen(yol.c_str(),"r+"))==NULL)
  35. cout<<"Dosya Açılamadı.";
  36. else
  37. {
  38.  while(!feof(f))
  39.  {
  40.   sayimiz=fgets(satir,80,f);
  41.   sayi=atoi(sayimiz);
  42.   sayilar[index]=sayi;
  43.   index++;
  44.  }
  45.  
  46.  hizli_sirala(sayilar,0,index-1);
  47. }
  48. iki=clock();
  49. fark=(iki-bir)/CLK_TCK;
  50. cout<<"Dosyadan Okuma Ve Siralama Suresi "<<fark<<" sn'dir"<<"\n";
  51. while(true)
  52. {
  53.  
  54. mesaj="K'nin degerini Giriniz:\n";
  55. cout<<mesaj;
  56. cin>>sira;
  57. bir=clock();
  58. if((sira>index)||(sira==0))
  59. {
  60. cout<<"HATA Dizinde Boyle Bir Sayi Yoktur\n";
  61. }
  62. else if(sira==-1)
  63. {
  64. cout<<"Gule Gule :)";
  65. getche();
  66. break;
  67. }
  68. else
  69. {
  70. iki=clock();
  71. fark=(iki-bir)/CLK_TCK;
  72.  
  73. cout<<"EN KUCUK "<<sira<<". SAYI "<<sayilar[sira-1]<<"-> Bu Sayiyi Bulmak Icin Gecen Zaman "<<fark<<" sn'dir"<<"\n";
  74. }
  75. }
  76. return 0;
  77. }
  78. //---------------------------------------------------------------------------
  79. void hizli_sirala(int dizi[], int sol, int sag)
  80. {
  81.   register int k, j;
  82.   int ortadaki, gecici;
  83.   k = sol;
  84.   j = sag;
  85.   ortadaki = dizi[(sol+sag)/2];
  86.   
  87.   do
  88. {
  89.    while(dizi[k] < ortadaki && k < sag) k++;
  90.    while(ortadaki < dizi[j] && j > sol)  j--;
  91.   
  92.      if(k <= j)
  93.     { 
  94.       gecici = dizi[k];
  95.       dizi[k] = dizi[j];
  96.       dizi[j] = gecici;
  97.       k++;
  98.       j--;
  99.      }// if
  100.    } while(k <= j)//do
  101.  
  102.   if(sol < j) hizli_sirala(dizi,sol,j);
  103.   if(k < sag) hizli_sirala(dizi,k,sag);
  104. }
  105. //---------------------------------------------------------------------------
  106.  

Yorumlar (0)
Sadece kayıtlı kullanıcılar yorum yazabilir!
Son Güncelleme ( Salı, 10 Mayıs 2011 11:13 )  
backlinktr.biz | 521: Web server is down

Error 521 Ray ID: 4c9b78e64e6bb031 • 2019-04-19 02:33:11 UTC

Web server is down

You

Browser

Working
Istanbul

Cloudflare

Working
backlinktr.biz

Host

Error

What happened?

The web server is not returning a connection. As a result, the web page is not displaying.

What can I do?

If you are a visitor of this website:

Please try again in a few minutes.

If you are the owner of this website:

Contact your hosting provider letting them know your web server is not responding. Additional troubleshooting information.