c ++ c lenguaje de métodos de ordenación / tres métodos. Ordenamiento de burbuja, la ordenación por inserción, orden de clasificación.

Ordenar: Ordenar la llamada necesidad es haberse convertido en el orden de los datos en conjunto.

1. ordenamiento de burbuja:

La idea básica de la burbuja para ordenar: compara dos elementos adyacentes, si están en el orden equivocado, y dejar que ellos intercambian terminado. Por ejemplo, un número en una columna desordenada: 5,8,6,3,9,2,1,7, de pequeño a grande fila de una secuencia, de acuerdo con la burbuja de pensamiento tipo, ponemos elementos adyacentes por parejas comparación, de acuerdo con tamaño de la posición elemento de intercambio. El proceso es como sigue:
Aquí Insertar imagen Descripción
Aquí Insertar imagen Descripción
Aquí Insertar imagen Descripción
Aquí Insertar imagen Descripción
Aquí Insertar imagen Descripción

#include<bits/stdc++.h>
using namespace std;
const int maxn=100;
int a[maxn],x;
void bubble_sort(int n){//n为数组的长度
     for(int i=0;i<n;i++){
     	for(int j=0;j<n-i-1;j++){//这个n-i-1是因为在第一轮冒泡循环后,最大的已经排到了最后。 
     		if(a[j]>a[j+1]){//从大到小排序。 
     			int temp=a[j];//定义一个中间变量来使两个元素互换 
     			a[j]=a[j+1];
     			a[j+1]=temp;
			 }
		 }
	 }	
} 
int main(){
	cin>>x;//输入要几个数排序。 
	for(int i=0;i<x;i++){
		cin>>a[i];
	}
	bubble_sort(x);
	for(int i=0;i<x;i++){
		cout<<a[i]<<" "; 
	}
	return 0;
}

Los resultados son como sigue:
Aquí Insertar imagen Descripción

La dificultad para entender:

J donde <ni-1; ¿Por qué?
Debido a que hay una serie de características ordenamiento de burbuja, este programa se ordena en orden descendente, por lo que después de la primera ronda de clasificación, el número máximo flotará en el extremo derecho; después de la segunda ronda de clasificación, el segundo número más grande va a flotar a la penúltima dos posiciones; después de la tercera ronda de clasificación, el tercer número más grande flotará hasta la última tercera posición ......
en otras palabras, la cantidad de clasificación redonda, hay que muchos números han sido ordenados por los requisitos alineados, que no necesitan comparar.
Escribir j <n-1 puede ser, pero el programa de hacer un montón de esfuerzo inútil en la aplicación.

2. Insertar Ordenar:

Insertar en el conjunto de ideas y métodos para organizar la mano de cartas similares a, por ejemplo, que ahora contienen una sola tarjeta, y luego las tarjetas de izquierda a derecha, descendente mostrar, esta vez, tenemos que robar una carta a cabo, se insertan en las manos dispuestas con anterioridad a cabo buenas, y repetir esta operación hasta que se inserta la última carta, que se alinearon.
Por ejemplo: 2,5,1,3,6, de pequeño a grande especie
Aquí Insertar imagen Descripción
Aquí Insertar imagen Descripción
Aquí Insertar imagen Descripción

#include<bits/stdc++.h>
using namespace std;
const int maxn=100;
int a[maxn],x;
void insert_sort(int n){
	int j,temp;
	for(int i=1;i<n;i++){
		temp=a[i];
		j=i-1;
		while(j>=0&&a[j]>temp){//向前一个一个判断有没有比它大的数 
			a[j+1]=a[j];
			j--;
		}
		a[j+1]=temp;//找到它应该在的位置交换 
	}
}
int main(){
	cin>>x;//x个数进行排序
	for(int i=0;i<x;i++){
		cin>>a[i];
	}
	insert_sort(x);
	for(int i=0;i<x;i++){
		cout<<a[i]<<" ";
	}
	return 0;
} 

Aquí Insertar imagen Descripción

3.sort Ordenar:

un array puede ordenar en orden de funciones ascendente.

#include<bits/stdc++.h>
using namespace std;
int main(){
	int x;
	cin>>x;
	int a[x];
	for(int i=0;i<x;i++) cin>>a[i];
	sort(a,a+x);
	for(int i=0;i<x;i++) cout<<a[i]<<" ";
	return 0;
} 

especie pedir simple y directo.
Aquí Insertar imagen Descripción
Tome en flor.

Publicado ocho artículos originales · ganado elogios 8 · visitas 201

Supongo que te gusta

Origin blog.csdn.net/xzy15703841578/article/details/105371733
Recomendado
Clasificación