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

Hata
  • XML Parsing Error at 1:82. Error 9: Invalid character
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 )  
404 Not Found

404

Not Found

The resource requested could not be found on this server!


Proudly powered by LiteSpeed Web Server

Please be advised that LiteSpeed Technologies Inc. is not a web hosting company and, as such, has no control over content found on this site.