c ++ c linguagem triagem métodos / três métodos. Bubble sort, ordenação por inserção, a ordem de classificação.

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:
Aqui Insert Picture Descrição
Aqui Insert Picture Descrição
Aqui Insert Picture Descrição
Aqui Insert Picture Descrição
Aqui Insert Picture Descrição

#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:
Aqui Insert Picture Descrição

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
Aqui Insert Picture Descrição
Aqui Insert Picture Descrição
Aqui Insert Picture Descrição

#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;
} 

Aqui Insert Picture Descrição

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.
Aqui Insert Picture Descrição
Leve em flor.

Lançado oito artigos originais · ganhou elogios 8 · vista 201

Acho que você gosta

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