泡沫在数据结构中排序

在本教程中,您将学习泡沫排序。另外,你会c ++ 泡泡排序的例子和 在空间和时间方面寻找复杂性。

泡沫排序

泡沫排序是数据结构稳定排序算法。它是我们以升序或降序比较两个相邻元素和交换元素的算法。

泡沫排序算法

在泡沫排序中,我们可以将所有元素逐个进行比较,并在基于其值元素的时间一次对一个元素进行排序。 

泡沫排序涉及的几步是:

  1. 您必须从第一个元素索引的值启动i.e. index = 0。现在,将元素与邻近的下一个元素进行比较。
  2. 如果第一个元素大于下一个元素,则交换两个元素。
  3. 如果第一个元素小于下一个元素,则移动到下一个元素i.e. index = 1并从步骤1重复步骤。 
在每次迭代到这3步之后,在末端放置的未排置元素的最大元素。
每个迭代一个元素都是一个逐个一个元素。因此,我们将所有元素与上次未排归元素进行比较。

最后,当所有未分子的元素放置在正确的索引处时,我们可以说出元素。

泡沫排序
比较相邻的元素
泡沫排序
比较相邻的元素
泡沫排序
比较相邻的元素

例子:

C ++


//C++ program for Bubble Sort
#include<iostream>
using namespace std;

void bubbleSort(int arr[], int n);
// function declaration

int main()
{
    int n, i;
     // User have to enter number of elements to be sorted
    cout<<"Enter Number of Elements to be Sorted :)";
    cin>>n;
	int arr[n];
    // Input array elements
    for(i = 0; i < n; i++)
    {
        cout<<"Enter element number: ";
        cin>>arr[i];
    }
    // Call bubbleSort function
    bubbleSort(arr, n);
    
    return 0;
}

// function definition
void bubbleSort(int arr[], int n)
{
    int pass, i, temp;
    for(pass = 0; pass < n; pass++)
    {
        for(i = 0; i < n-pass-1; i++)
        {
            if( arr[i] > arr[i+1])
            {
                // Swap logic to swap the elements
                temp = arr[i];
                arr[i] = arr[i+1];
                arr[i+1] = temp;
            } 
        }
    }
// Print Sorted Array
    cout<<"Sorted Array :) ";
    for(i = 0; i < n; i++)
    {
       cout<<arr[i]<<" ";
    }
}

输出


Enter Number of Elements to be Sorted :)4
Enter element number: 3
Enter element number: 20
Enter element number: 10
Enter element number: 5
Sorted Array :) 3 5 10 20
--------------------------------

泡沫的复杂性

上述算法的时间复杂性是 O(n^2).

时间复杂性:

  1. 最佳案例复杂性: 在)                                                                                                                                         如果元素的数组已经对,那么我们不需要排序。
  2. 平均案例复杂性: o(n ^ 2)                                                                                                                             当阵列的元素处于混乱状态时。
  3. 最坏的情况复杂性: o(n ^ 2)                                                                                                                                   如果元素数组以降序为存在,我们需要按升序对数组进行排序。

空间复杂性:

泡沫排序的空间复杂性总是 O(1) 由于交换的额外临时变量。

我们在另一个教程中仅了解更多的复杂性。

在本教程中,您学习泡泡排序A在时间和空间方面,泡沫分类的Lgorithm和复杂性。我希望你喜欢这篇文章。

快乐编码ðÿ~š

没意见:

如果您有任何疑问,请告诉我

供电 博主.