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:
#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:
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
#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;
}
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.
Tome en flor.