Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Isih Buih dalam C#

Isih Buih dalam C#

王林
王林asal
2024-09-03 15:24:24822semak imbas

Artikel berikut menyediakan garis besar tentang Bubble Sort dalam C#. Isih buih ialah algoritma pengisihan yang dianggap sebagai algoritma paling mudah, yang meletakkan elemen atau nombor dalam susunan tertentu dan elemen ini akhirnya diletakkan di lokasi yang betul disusun dalam tatasusunan.

Algoritma isihan buih

Konsep asas di mana isihan gelembung berfungsi ialah tatasusunan diambil kira. Tatasusunan ini diulang dari indeks pertama hingga indeks terakhir. Semasa melintasi tatasusunan dibandingkan dengan elemen bersebelahan dan ditukar jika ia hadir dalam susunan yang salah. Ini bermakna jika nombor lebih kecil daripada elemen semasa pada indeks tertentu maka ia akan ditukar. Proses ini diulang sehingga tatasusunan diisih sepenuhnya. Ia berlaku dalam bentuk hantaran.

Mari kita mempertimbangkan tatasusunan tujuh nombor rawak dan menyusunnya:

Isih gelembung berfungsi dalam bentuk hantaran. Pas ini mengambil dua nombor bersebelahan pada satu masa dan kemudian membandingkan dua nombor tersebut. Jika nombor yang hadir dikatakan N. Maka bilangan pas yang diperlukan untuk mengisih set data ialah N – 1. Setiap pas mengisih data dengan mengambil kira dua nombor tersebut dan mengulangi urutan sehingga semua nombor tidak diisih mengikut cara yang diharapkan.

Lulus 1:

90   76   45   93   68   13   98

Dalam hantaran pertama dua nombor pertama dibandingkan. Di sini ia akan membandingkan 90 dengan 76. 90 lebih besar daripada 76 maka ia akan ditukar.

76   90   45   93   68   13   98

Kini 90 akan dibandingkan dengan 45. (0 lebih besar daripada 45 juga. Oleh itu, ini akan ditukar dengan 45.

76   45   90   93   68   13   98

Kini, nombor 90 dan 93 sudah tersusun. Mereka tidak akan ditukar dan akan kekal seperti sedia ada. Pas ini akan dihentikan mengikut algoritma.

Lulus 2:

76   45   90   93   68   13   98

Pas ini sekali lagi akan bermula dengan nombor pertama dalam tatasusunan. Ini bermakna pengisihan kini akan bermula daripada 76. 76 akan dibandingkan dengan 45. 45 yang kurang daripada 76 akan ditukar dengan 76.

45   76   90   93   68   13   98

Kini 76 dan 90 akan diperiksa. Mereka sudah berada dalam susunan yang betul oleh itu tidak akan ada perubahan dalam tatasusunan.

Dengan cara ini traversing akan berlaku sehingga penghujung tatasusunan.

Algoritma Isih Buih

  • BubbleSort(Array : senarai item boleh diisih)
  • N= Tatasusunan.Panjang
  • Tetapkan Bendera := Benar
  • Ulang Langkah dari 3 hingga 5 untuk I = 1 hingga N-1 manakala Bendera == benar
  • Tetapkan Bendera := Salah
  • Set i:=0
  • Ulang semasa i
  • (a) Jika Array[i+1]>Array[i], maka:
    Tukar Tatasusunan[i] dan Tatasusunan[i+1] Tetapkan Bendera:= Benar
  • (b) Set i :=i+1
  • Keluar

Contoh Isih Buih dalam C#

Diberikan di bawah adalah contoh:

Contoh #1

Program C# untuk melaksanakan isihan Buih.

Kod:

using System;
class Bubble
{
static void bubbleSrt(int []arr)
{
int num = arr.Length;
for (int i = 0; i < num - 1; i++)
for (int j = 0; j < num - i - 1; j++)
if (arr[j] > arr[j + 1])
{
// swap tmp and arr[i]
int tmp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = tmp;
}
}
/* Printing the array */
static void printIt(int []arr)
{
int n = arr.Length;
for (int i = 0; i < n; ++i)
Console.Write(arr[i] + " ");
Console.WriteLine();
}
// Main method
public static void Main()
{
int []arr = {90, 76, 45, 93, 68, 13, 98};
bubbleSrt(arr);
Console.WriteLine("Sorted array");
printIt(arr);
}
}

Output:

Isih Buih dalam C#

Atur cara di atas mempunyai kaedah yang ditentukan untuk mengisih nombor menggunakan Bubble sort. Bubblesort mempunyai dua untuk gelung yang melintasi tatasusunan dan menyimpan nombor untuk ditukar dalam tmp pembolehubah sementara. Nilai tmp ini kemudiannya ditukar dengan kedudukan yang sepatutnya dengan bantuan indeks j. Kaedah lain digunakan untuk mencetak tatasusunan yang diisih. Isih buih menggunakan n – 1 pas untuk mengisih tatasusunan.

Isihan Buih boleh dilaksanakan untuk tertib menurun juga.

Contoh #2

Program C# untuk melaksanakan isihan Bubble dalam susunan menurun boleh seperti di bawah:

Kod:

using System;
public class BubbleSrt
{
public static void Main(string[] args)
{
int[]arr=new int[10]{23,98,45,12,9,16,65,74,34,29};//Array created with 10 unsorted numbers
bubblesort(arr,10);
int a;
for(a = 0; a < 10; a++)
Console.Write(arr[a]+"\t");//Printing the array after sorting in descending order
Console.ReadLine();
}
//bubble sort
static void bubblesort(int[] data, int n)
{
int a;
int b;
for(a = 0; a < n; a++)
for (b = n-1; b > a; b--)
if (data[b] > data[b-1])//Condition to arrange array in descending order
{
int temp = data[b];
data[b]=data[b-1];
data[b-1]=temp;
}
}
}

Output:

Isih Buih dalam C#

Di sini, kami mengisih tatasusunan dalam tertib menurun. Kami telah mengisytiharkan tatasusunan yang mempunyai sepuluh nombor. Selepas itu kami memanggil fungsi bubblesort dalam program utama dan kemudian mencetaknya dalam susunan menurun. Fungsi bubblesort di sini telah mengambil dua pembolehubah untuk melintasi tatasusunan. Di sini ia mengambil dua untuk gelung dan melintasi tatasusunan dan membandingkan nilai yang ada dalam tatasusunan. Keadaan data yang terdapat pada indeks b dan indeks b – 1 akan dibandingkan. Jika nombor yang terdapat pada b lebih besar maka ia akan ditukar. Ini sedang dilakukan di dalam untuk gelung. Sebaik sahaja ia ditukar, ia akan berterusan sehingga penghujung tatasusunan.

Kesimpulan

Isih gelembung ialah kaedah pengisihan yang paling mudah. Ia merentasi keseluruhan tatasusunan dan gelembung muncul nombor yang membantu dalam menukar dan membawa tatasusunan dalam urutan yang betul. Ia membandingkan dua nombor bersebelahan dan memaparkan nombor tersebut apabila dan apabila nombor tersebut tidak berada dalam susunan yang dijangkakan. Pengisihan menggunakan C# ini sangat mudah dan boleh dilakukan dengan menggunakan pembolehubah asas yang terdapat dalam tatasusunan.

Atas ialah kandungan terperinci Isih Buih dalam C#. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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
Artikel sebelumnya:Menyusun dalam C#Artikel seterusnya:Menyusun dalam C#