Ordenar: Ordenar a chamada necessidade é ter se tornado a ordem dos dados em conjunto.
1. bubble sort:
A idéia básica do tipo bolha: ele compara dois elementos adjacentes, se eles estão na ordem errada, e deixá-los trocar mais. Por exemplo, um número em uma coluna desordenada: 5,8,6,3,9,2,1,7, desde pequenas a grandes linha de uma sequência, de acordo com o pensamento espécie de bolha, que colocar os elementos adjacentes aos pares comparação, de acordo com a tamanho posição elemento de troca. Processo é como se segue:
#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;
}
Os resultados são os seguintes:
compreensão de dificuldade:
J onde <ni-1; Porquê?
Porque não é uma características bubble sort, este programa é classificada em ordem decrescente, de modo que após a primeira rodada de classificação, o número máximo irá flutuar para a extrema direita, após a segunda rodada de classificação, o segundo maior número irá flutuar para o penúltimo duas posições, após a terceira rodada de classificação, o terceiro maior número irá flutuar até o último terceira posição ......
em outras palavras, quanto classificando rodada, há que muitos números foram encomendados pelos requisitos alinhados, eles não precisam Compare.
Escrever j <n-1 pode ser, mas o programa de fazer um monte de desperdício de esforços na implementação.
2. Insira Ordenar:
Inserir na disposição de ideias e métodos para organizar a mão de cartas de jogar semelhantes a, por exemplo, estamos agora segurando um único cartão, em seguida, os cartões da esquerda para a direita, descendo tipo, desta vez, é preciso comprar um card para fora, são inseridos previamente arranjados lugar boas mãos, e repita esta operação até o último cartão é inserido, ele alinhados.
Por exemplo: 2,5,1,3,6, de pequeno a grande sorte
#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:
uma matriz podem classificar na ordem de funções 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;
}
tipo encomendar simples e direta.
Leve em flor.