Sayarak sıralama bilgisayar bilimlerinde kullanılan ve kova sıralaması gibi sıralanacak dizinin içindeki değerlerin aralığının bilinmesi durumunda kullanılabilen bir sıralama algoritmasıdır. Sayarak sıralama algoritması dizideki değerlerin aralık bilgilerini yeni bir dizi oluşturmak için kullanır. Oluşturulan yeni dizinin her bir satırı ana dizide o satır numarasının değerine sahip ögelerin sayısını gösterir. Yeni dizideki öge değeri sayıları daha sonra ana dizideki tüm değerlerin doğru konuma konulması için kullanılır. Sayarak sıralama algoritması güvercin yuvası sıralamasından daha verimsiz bir algoritmadır.
C++ ile uygulaması
Aşağıdaki program sayarak sıralama algoritmasının dilinde yazılmış bir uygulamasını göstermektedir.
/// countingSort - değerleri tutan bir diziyi sıralamak için. /// /// Algoritmanın verimli çalışması için sıralacak /// değerlerin aralığı sıralanacak ögelerin sayısından /// çok daha büyük olmamalıdır. /// /// param nums - girdi - sıralanacak değerler dizisiǖ /// param size - girdi - dizideki ögelerin sayısı /// void counting_sort(int *nums, int size) { // search for the minimum and maximum values in the input int i, min = nums[0], max = min; for(i = 1; i < size; ++i) { if (nums[i] < min) min = nums[i]; else if (nums[i] > max) max = nums[i]; } // create a counting array, counts, with a member for // each possible discrete value in the input. // initialize all counts to 0. int distinct_element_count = max - min + 1; int*counts = new int[distinct_element_count]; for(i=0; i<distinct_element_count; ++i) counts[i] = 0; // accumulate the counts - the result is that counts will hold // the offset into the sorted array for the value associated with that index for(i=0; i<size; ++i) ++counts[ nums[i] - min ]; // store the elements in the array int j=0; for(i=min; i<=max; i++) for(int z=0; z<counts[i-min]; z++) nums[j++] = i; delete[] counts; }
Yazılım ile ilgili bu madde seviyesindedir. Madde içeriğini genişleterek Vikipedi'ye katkı sağlayabilirsiniz. |
wikipedia, wiki, viki, vikipedia, oku, kitap, kütüphane, kütübhane, ara, ara bul, bul, herşey, ne arasanız burada,hikayeler, makale, kitaplar, öğren, wiki, bilgi, tarih, yukle, izle, telefon için, turk, türk, türkçe, turkce, nasıl yapılır, ne demek, nasıl, yapmak, yapılır, indir, ücretsiz, ücretsiz indir, bedava, bedava indir, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, resim, müzik, şarkı, film, film, oyun, oyunlar, mobil, cep telefonu, telefon, android, ios, apple, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, pc, web, computer, bilgisayar
Sayarak siralama bilgisayar bilimlerinde kullanilan ve kova siralamasi gibi siralanacak dizinin icindeki degerlerin araliginin bilinmesi durumunda kullanilabilen bir siralama algoritmasidir Sayarak siralama algoritmasi dizideki degerlerin aralik bilgilerini yeni bir dizi olusturmak icin kullanir Olusturulan yeni dizinin her bir satiri ana dizide o satir numarasinin degerine sahip ogelerin sayisini gosterir Yeni dizideki oge degeri sayilari daha sonra ana dizideki tum degerlerin dogru konuma konulmasi icin kullanilir Sayarak siralama algoritmasi guvercin yuvasi siralamasindan daha verimsiz bir algoritmadir C ile uygulamasiAsagidaki program sayarak siralama algoritmasinin C dilinde yazilmis bir uygulamasini gostermektedir countingSort degerleri tutan bir diziyi siralamak icin Algoritmanin verimli calismasi icin siralacak degerlerin araligi siralanacak ogelerin sayisindan cok daha buyuk olmamalidir param nums girdi siralanacak degerler dizisiǖ param size girdi dizideki ogelerin sayisi void counting sort int nums int size search for the minimum and maximum values in the input int i min nums 0 max min for i 1 i lt size i if nums i lt min min nums i else if nums i gt max max nums i create a counting array counts with a member for each possible discrete value in the input initialize all counts to 0 int distinct element count max min 1 int counts new int distinct element count for i 0 i lt distinct element count i counts i 0 accumulate the counts the result is that counts will hold the offset into the sorted array for the value associated with that index for i 0 i lt size i counts nums i min store the elements in the array int j 0 for i min i lt max i for int z 0 z lt counts i min z nums j i delete counts Yazilim ile ilgili bu madde taslak seviyesindedir Madde icerigini genisleterek Vikipedi ye katki saglayabilirsiniz