logo

Programa de classificação por bolha em C

Tipo de bolha é um algoritmo de classificação simples e intuitivo. Ele troca repetidamente os elementos adjacentes se eles estiverem na ordem errada até que o array seja classificado. Neste algoritmo, o maior elemento 'borbulha' até o final do array em cada iteração. A classificação por bolha é ineficiente para grandes conjuntos de dados, mas é útil para fins educacionais e pequenos conjuntos de dados. Neste artigo, implementaremos o algoritmo de classificação por bolha na linguagem de programação C.

A primeira etapa é definir a função de classificação por bolha. Esta função usa um array inteiro e o tamanho do array como seus parâmetros. A função não retorna nada, pois modifica o array original. Aqui está o definição de função:

 void bubble_sort(int arr[], int n) { int i, j; for (i = 0; i <n - 1; i++) { for (j="0;" j <n i j++) if (arr[j]> arr[j + 1]) { int temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } } } </n>

A função possui dois loops. O loop externo vai do primeiro elemento ao penúltimo elemento da matriz. O loop interno vai do primeiro elemento ao penúltimo elemento da parte não classificada da matriz. A condição do loop interno é n - i - 1 porque os últimos i elementos do array já estão classificados.

Em cada iteração do loop interno, comparamos os elementos adjacentes. Se o elemento esquerdo for maior que o elemento direito, nós os trocamos. Após a conclusão do loop interno, é garantido que o maior elemento esteja no final da parte não classificada da matriz.

Agora, podemos escrever a função principal para testar nossa implementação de classificação por bolha. Aqui está a função principal junto com a parte anterior:

Programa C:

 #include void bubble_sort(int arr[], int n) { int i, j; for (i = 0; i <n - 1; i++) { for (j="0;" j <n i j++) if (arr[j]> arr[j + 1]) { int temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } } } int main() { int arr[] = {64, 34, 25, 12, 22, 11, 90}; int n = sizeof(arr) / sizeof(arr[0]); bubble_sort(arr, n); printf(&apos;Sorted array: &apos;); for (int i = 0; i <n; i++) { printf('%d ', arr[i]); } return 0; < pre> <p>The main function creates an integer array arr of size 7 and initializes it with random numbers. We then calculate the size of the array by dividing the size of the array by the size of an integer element. Next, we call the bubble_sort function to sort the array. Finally, we print the sorted array using a for loop.</p> <p> <strong>When we run the program, we should see the following output:</strong> </p> <pre> Sorted array: 11 12 22 25 34 64 90 </pre> <p>This output shows that our bubble sort implementation correctly sorted the array in ascending order.</p> <p>To run the program, we need to compile it using a C compiler. Here is an example <strong>compilation command for GCC:</strong> </p> <pre> gcc -o bubble_sort bubble_sort.c </pre> <p>This command compiles the bubble_sort.c file and produces an executable file named bubble_sort.</p> <p>In summary, the bubble sort algorithm repeatedly swaps adjacent elements until the array is sorted. The algorithm has a time complexity of O(n<sup>2</sup>), which makes it inefficient for large data sets. However, it is useful for educational purposes and small data sets. We implemented the bubble sort algorithm in C programming language and tested it using a simple example.</p> <h3>Characteristics:</h3> <ul> <li>Bubble sort is a simple sorting algorithm.</li> <li>It works by repeatedly swapping adjacent elements if they are in the wrong order.</li> <li>The algorithm sorts the array in ascending or descending order.</li> <li>It has a time complexity of O(n<sup>2</sup>) in the worst case, where n is the size of the array.</li> </ul> <h3>Usage:</h3> <ul> <li>Bubble sort is useful for educational purposes and small data sets.</li> <li>It is not suitable for large data sets because of its time complexity.</li> </ul> <h3>Advantages:</h3> <ul> <li>Bubble sort is easy to understand and implement.</li> <li>It requires minimal additional memory space to perform the sorting.</li> </ul> <h3>Disadvantages:</h3> <ul> <li>It is not efficient for large data sets because of its time complexity.</li> <li>It has poor performance compared to other sorting algorithms, such as quicksort and mergesort.</li> </ul> <h2>Conclusion:</h2> <p>Bubble sort is a simple and intuitive sorting algorithm that is useful for educational purposes and small data sets. However, its time complexity makes it inefficient for large data sets. Therefore, it is not commonly used in real-world applications. Other sorting algorithms, such as quicksort and mergesort, are more efficient for large data sets.</p> <hr></n;></n>

Esta saída mostra que nossa implementação de classificação por bolha classificou corretamente a matriz em ordem crescente.

Para executar o programa, precisamos compilá-lo usando um compilador C. Aqui está um exemplo comando de compilação para GCC:

 gcc -o bubble_sort bubble_sort.c 

Este comando compila o arquivo bubble_sort.c e produz um arquivo executável denominado bubble_sort.

Em resumo, o algoritmo de classificação por bolha troca repetidamente elementos adjacentes até que a matriz seja classificada. O algoritmo tem uma complexidade de tempo de O(n2), o que o torna ineficiente para grandes conjuntos de dados. No entanto, é útil para fins educacionais e para pequenos conjuntos de dados. Implementamos o algoritmo de classificação por bolha em linguagem de programação C e o testamos usando um exemplo simples.

Características:

  • Bubble sort é um algoritmo de classificação simples.
  • Funciona trocando repetidamente elementos adjacentes se eles estiverem na ordem errada.
  • O algoritmo classifica a matriz em ordem crescente ou decrescente.
  • Tem uma complexidade de tempo de O(n2) no pior caso, onde n é o tamanho da matriz.

Uso:

  • A classificação por bolha é útil para fins educacionais e pequenos conjuntos de dados.
  • Não é adequado para grandes conjuntos de dados devido à sua complexidade de tempo.

Vantagens:

  • A classificação por bolha é fácil de entender e implementar.
  • Requer espaço de memória adicional mínimo para realizar a classificação.

Desvantagens:

  • Não é eficiente para grandes conjuntos de dados devido à sua complexidade de tempo.
  • Possui baixo desempenho em comparação com outros algoritmos de classificação, como quicksort e mergesort.

Conclusão:

Bubble sort é um algoritmo de classificação simples e intuitivo, útil para fins educacionais e pequenos conjuntos de dados. No entanto, a sua complexidade de tempo torna-o ineficiente para grandes conjuntos de dados. Portanto, não é comumente usado em aplicações do mundo real. Outros algoritmos de classificação, como quicksort e mergesort, são mais eficientes para grandes conjuntos de dados.