Program C untuk jenis gelembung rekursif

WBOY
Lepaskan: 2023-09-15 20:49:02
ke hadapan
1134 orang telah melayarinya

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
    Salin selepas log masuk

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

    First Pass
    1 2 3 3 2 &rarr; swap &rarr; 1 2 3 2 3
    1 2 3 2 3 &rarr; swap &rarr; 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
    Salin selepas log masuk

Atas ialah kandungan terperinci Program C untuk jenis gelembung rekursif. 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!