Teknik isihan gabungan dijelaskan dalam C

WBOY
Lepaskan: 2023-09-05 14:05:05
ke hadapan
1048 orang telah melayarinya

Isih ialah proses menyusun elemen dalam tertib menaik (atau) menurun.

Jenis pengisihan

Bahasa C menyediakan lima teknik pengisihan seperti berikut -

  • Isih gelembung (atau) isihan pertukaran
  • Isihan pilihan
  • Isihan sisipan (atau) Isih Pemisihan Linear
  • Isih Gabungan (atau) Isih Luaran
Isih Gabungan

Isih Gabungan ialah kaedah bahagi dan takluk. Ia membahagikan tatasusunan kepada separuh, menakluk dan menggabungkan (menggabungkannya) secara rekursif.

Mari kita pertimbangkan contoh yang diberikan di bawah -

Ambil tatasusunan yang tidak diisih dan gunakan teknik isihan cantum untuk mengisih tatasusunan. . Teknologi Isih -

Demonstrasi Langsung

#include <stdio.h>
#define max 10
int a[11] = { 10, 14, 19, 26, 27, 31, 33, 35, 42, 44, 0 };
int b[10];
void merging(int low, int mid, int high) {
   int l1, l2, i;
   for(l1 = low, l2 = mid + 1, i = low; l1 <= mid && l2 <= high; i++) {
      if(a[l1] <= a[l2])
         b[i] = a[l1++];
      else
         b[i] = a[l2++];
   }
   while(l1 <= mid)
      b[i++] = a[l1++];
   while(l2 <= high)
      b[i++] = a[l2++];
   for(i = low; i <= high; i++)
      a[i] = b[i];
   }
   void sort(int low, int high) {
      int mid;
      if(low < high) {
         mid = (low + high) / 2;
         sort(low, mid);
         sort(mid+1, high);
         merging(low, mid, high);
      } else {
      return;
   }
}
int main() {
   int i;
   printf("List before sorting</p><p>");
   for(i = 0; i <= max; i++)
   printf("%d ", a[i]);
   sort(0, max);
   printf("</p><p>List after sorting</p><p>");
   for(i = 0; i <= max; i++)
   printf("%d ", a[i]);
}
Salin selepas log masuk

Output

Teknik isihan gabungan dijelaskan dalam C Apabila melaksanakan program di atas, output berikut dihasilkan -

List before sorting
10 14 19 26 27 31 33 35 42 44 0
List after sorting
0 10 14 19 26 27 31 33 35 42 44
Salin selepas log masuk

Atas ialah kandungan terperinci Teknik isihan gabungan dijelaskan dalam C. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:tutorialspoint.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!