当前位置:网站首页>C language bubble sort

C language bubble sort

2022-07-06 05:51:00 bit..

  Bubble sort (Bubble Sort) It is also a simple and intuitive sorting algorithm . It repeatedly visits the sequence to be sorted , Compare two elements at a time , If they're in the wrong order, exchange them . The job of the interview sequence is to repeat until there is no need to exchange , That is to say, the sequence has been sorted . The name of this algorithm comes from the fact that the smaller the elements, the more slowly " floating " Go to the top of the list .

As one of the simplest sorting algorithms , Bubble sorting makes me feel like Abandon It feels the same in a word book , Every time on the first page , So most familiar with . Bubble sorting also has an optimization algorithm , It's about making a flag, When elements are not exchanged in a sequence traversal , It is proved that the sequence has been ordered . But this improvement doesn't do much to improve performance .

1. Algorithm steps

Compare adjacent elements . If the first one is bigger than the second one , Just swap them .

Do the same for each pair of adjacent elements , From the beginning of the first couple to the end of the last couple . After this step , The last element will be the maximum number .

Repeat the above steps for all elements , Except for the last one .

Keep repeating the above steps for fewer and fewer elements each time , Until there's no pair of numbers to compare .

2. Dynamic diagram demonstration

9dfab3cbd7cf0733375a2e67ee84f454.gif

3. When is the fastest

When the input data is already in positive order .

4. When is the slowest

When the input data is in reverse order ( Write a for It's OK to output data in reverse order )

5.  Code implementation ( From big to small )

​
#include<stdio.h>
void Bubble_sort(int arr[], int size)
{
	int i, j, tmp;
	for (i = 0; i <= size - 1; i++)
	{
		for (j = 0; j <= size - 1 - i; j++)
		{
			if (arr[j] < arr[j + 1])  // If you want to arrange from small to large, just put '<' Change to '>' That is to say 
			{
				tmp = arr[j];
				arr[j] = arr[j + 1];
				arr[j + 1] = tmp;
			}
		}
	}
}
int main()
{
	int arr[5], i;
	printf(" Please enter five numbers :");
	for (i = 0; i < 5; i++)
	{
		scanf_s("%d", &arr[i]);
	}
	printf(" Array before arrangement :");
	for (i = 0; i < 5; i++)
	{
		printf("%d", arr[i]);
		
	}
	printf("\n");
	printf(" Sorted array :");
	Bubble_sort(arr, 5);
	for (i = 0; i < 5; i++)
	{
		printf("%d", arr[i]);
	}
	return 0;
		
}

​

3155b3d24283461ab5419b95802cc06a.png

 

 

 

原网站

版权声明
本文为[bit..]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/187/202207060544179107.html