Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Program C untuk jenis gelembung rekursif

Program C untuk jenis gelembung rekursif

WBOY
WBOYke hadapan
2023-09-15 20:49:021140semak imbas

Program C untuk jenis gelembung rekursif

Isih buih ialah salah satu algoritma pengisihan paling mudah digunakan untuk mengisih data dengan membandingkan elemen bersebelahan. Semua elemen dibandingkan secara berperingkat. Peringkat pertama meletakkan nilai terbesar pada penghujung, peringkat kedua meletakkan elemen kedua terbesar pada kedudukan kedua hingga terakhir, dan seterusnya sehingga senarai lengkap diisih. Algoritma isihan buih saiz

    Melintasi dari indeks j=0 ke saiz tatasusunan - i - 1
  • Jika arr[i]>arr[j] Tukar arr[i] dengan arr[j]
  • Tamat

    • Isih buih rekursif
    • Jika panjang tatasusunan ialah 1, kembalikan
  • Melintasi tatasusunan sekali, tetapkan elemen maksimum pada penghujung

Selebihnya langkah-langkah terakhir diulang semula kecuali langkah terakhir Tatasusunan elemen

  • Contoh

  • Input
  • − Arr[] = {5,7,2,3, 1,4}; .

    rreeee ​​p> Kaedah yang digunakan dalam atur cara di bawah adalah seperti berikut

  • Dalam kaedah rekursif jenis gelembung, situasi asas ialah panjang tatasusunan = 1. Jika tidak, gunakan gelung untuk tunggal untuk melelaran ke atas tatasusunan dan menukar elemen dengan sewajarnya.

Ambil tatasusunan input Arr[] dan panjang sebagai bilangan elemen di dalamnya.

Fungsi recurbublSort(int arr[], int len) mendapatkan tatasusunan dan panjangnya, dan menggunakan isihan gelembung untuk menyusun tatasusunan secara rekursif.

Dapatkan suhu boleh ubah.

Jika panjang tatasusunan ialah 1, batal dikembalikan.

Jika tidak, gunakan gelung tunggal untuk lelaran ke atas tatasusunan dan untuk setiap elemen arr[i]>arr[i+1], tukar elemen.

Tetapkan suhu=arr[i], arr[i]=arr[i+1] dan arr[i+1]=suhu.

Sekarang kurangkan panjang sebanyak 1 kerana gelung sebelumnya meletakkan elemen terbesar pada kedudukan terakhir.

Panggil recurbublSort(arr,len) secara rekursif.

  • Pada akhir semua panggilan, apabila len menjadi 1, kami keluar dari rekursi dan mengisih tatasusunan.

  • Cetak tatasusunan yang diisih dalam utama.

  • Contoh

    First Pass
    5 7 2 3 1 4 → swap → 5 2 7 3 1 4
    5 2 7 3 1 4 → swap → 5 2 3 7 1 4
    5 2 3 7 1 4 → swap → 5 2 3 1 7 4
    5 2 3 1 7 4 → swap → 5 2 3 1 4 7
    Second Pass
    5 2 3 1 4 7 → swap → 2 5 3 1 4 7
    2 5 3 1 4 7 → swap → 2 3 5 1 4 7
    2 3 5 1 4 7 → swap → 2 3 1 5 4 7
    2 3 1 5 4 7 → swap → 2 3 1 4 5 7
    Third Pass
    2 3 1 4 5 7 → swap → 2 1 3 4 5 7
    2 1 3 4 5 7 no swap
    Fourth Pass
    2 1 3 4 5 7 → swap → 1 2 3 4 5 7
    1 2 3 4 5 7 no swap in further iterations

    Output
  • Jika kita menjalankan kod di atas, ia akan menghasilkan output berikut

    First Pass
    1 2 3 3 2 → swap → 1 2 3 2 3
    1 2 3 2 3 → swap → 1 2 2 3 3
    1 2 2 3 3 no swap in further iterations
    Second Pass
    1 2 2 3 3 no swap in further iterations

Atas ialah kandungan terperinci Program C untuk jenis gelembung rekursif. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam