Explicación de clasificación de burbujas de selección de idioma C (con código)

Explicación de clasificación de burbujas de selección de idioma C (con código)

Un ejemplo del principio de clasificación de burbujas :
dado un conjunto de números 15 20 1 16 para clasificar las burbujas de mayor a menor. La primera comparación de la primera ampolla: compare 15 y 20. Si 15 es menor que 20, cambie de posición. En este momento, la posición del número es 20 15 1 16. La segunda comparación de la primera ampolla: use 15 y 1 comparación, si 15 es menor que 1, entonces intercambia posiciones, 15 no es menor que 1, entonces la posición permanece sin cambios, en este momento la posición del número es 20 15 1 16, la tercera comparación del primer burbujeo: comparar 1 y 16, si Si 1 es menor que 16, las posiciones se intercambian. En este momento, la posición del número es 20 15 16 1. Los cuatro números deben compararse y se comparan un total de 3 veces. La primera comparación del segundo burbujeo: compare 20 y 15, si 20 no es menor que 15, la posición permanece igual. En este momento, la posición del número es 20 15 16 1. La segunda comparación del segundo burbujeo: use Comparar 15 y 16, si 15 es menor que 16, entonces intercambie posiciones, 15 es menor que 16, luego intercambie posiciones. En este momento, la posición del número es 20 16 15 4. Los tres números deben compararse. Un total de 2 se hacen comparaciones. Y así.
Un ejemplo del principio de clasificación por selección :
dado un conjunto de números 15 20 1 16 para clasificar de pequeño a grande. La primera selección y clasificación: intercambie el número más pequeño de los cuatro números con el primer número, la posición del número es 1 20 15 16 en este momento, la segunda selección y clasificación: el número más pequeño entre los tres números y el segundo número Intercambie, la posición del número es 1 15 16 20 en este momento, y el tercer orden de selección: intercambie el número más pequeño de los dos números con el tercer número, y la posición del número es 1 15 16 20 en este momento. Los cuatro números fueron seleccionados y ordenados tres veces.
El código específico es el siguiente :

#include <stdio.h>
#define LEN 10//宏定义LEN为10
void sort(int array[], int n);//函数声明
void buble(int array[], int n);

void main()
{
    
      
	int a[LEN], i;
	printf("\n请输入%d个无序整数:\n",LEN);
	for(i=0;i<LEN;i++)  scanf("%d",&a[i]);
	printf("\n开始选择排序\n");
	sort(a,LEN);
	printf("从小到大选择排序结果:\n");
	for(i=0;i<LEN;i++)  printf("%d ",a[i]);
	printf("\n");
	printf("\n开始冒泡排序\n");
	buble(a,LEN);
	printf("从大到小冒泡排序结果:\n");
	for(i=0;i<LEN;i++)  printf("%d ",a[i]);
	printf("\n");
}
//选择排序
void sort(int array[], int n)
{
    
      
	int i,j,k,t;
    for(i=0;i<n-1;i++)
    {
    
      
		k=i;
        for(j=i+1;j<n;j++)
		{
    
    
			if(array[j]<array[k])
			{
    
    
				k=j;
			}
		}
		t=array[k]; 
		array[k]=array[i]; 
		array[i]=t;
   }
}
//冒泡排序
void buble(int array[], int n){
    
    
	int i, j, t;
	for (i=0; i<n-1; i++)
	{
    
    
		for (j=0; j<n-1-i; j++)
		{
    
    
             if (array[j]<array[j+1])
			 {
    
    
				 t=array[j];
				 array[j]=array[j+1];
				 array[j+1]=t;
			 }
		} 

	}
}
/*测试用例:
3 5 8 11 15 20 1 4 77 109

*/


Resultado de ejecución :
Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/weixin_46020391/article/details/109401029
Recomendado
Clasificación