bubble - Cómo usar std:: sort para ordenar una matriz en C++
sort string c++ (11)
Clasificación C ++ utilizando la función de clasificación
#include <bits/stdc++.h>
using namespace std;
vector <int> v[100];
int main()
{
sort(v.begin(), v.end());
}
Cómo usar la biblioteca de plantillas estándar std::sort()
para ordenar una matriz declarada como int v[2000]
;
¿C ++ proporciona alguna función que pueda obtener el índice inicial y final de una matriz?
En C ++ 0x / 11 obtenemos std::begin
y std::end
que están sobrecargados para las matrices:
#include <algorithm>
int main(){
int v[2000];
std::sort(std::begin(v), std::end(v));
}
Si no tiene acceso a C ++ 0x, no es difícil escribirlos usted mismo:
// for container with nested typedefs, non-const version
template<class Cont>
typename Cont::iterator begin(Cont& c){
return c.begin();
}
template<class Cont>
typename Cont::iterator end(Cont& c){
return c.end();
}
// const version
template<class Cont>
typename Cont::const_iterator begin(Cont const& c){
return c.begin();
}
template<class Cont>
typename Cont::const_iterator end(Cont const& c){
return c.end();
}
// overloads for C style arrays
template<class T, std::size_t N>
T* begin(T (&arr)[N]){
return &arr[0];
}
template<class T, std::size_t N>
T* end(T (&arr)[N]){
return arr + N;
}
Es tan simple como eso ... c ++ le proporciona una función incorporada en STL (biblioteca de plantillas estándar) llamada sort(arr_name ,arr_name+arr_size)
que se ejecuta de 20% a 50% más rápido que el código codificado a mano -ordenar. También es mejor que incluya el archivo de encabezado
#include<bits/stdc++.h>
Aquí está el código de muestra para su uso:
#include<isostream>
#include<bits/stdc++.h>
using namespace std;
main()
{
int n;cin>>n;
int a[n];
for(int i=0;i<n;i++)
cin>>a[i];
sort(a,a+n);
for(int i=0;i<n;i++)
cout<<a[i]<<" ";
}
Puede ordenarlo std::sort(v, v + 2000)
Si no conoce el tamaño, puede usar:
std::sort(v, v + sizeof v / sizeof v[0]);
Incluso si conoce el tamaño, es una buena idea codificarlo de esta manera, ya que reducirá la posibilidad de un error si el tamaño de la matriz se cambia más tarde.
Use la función C ++ std::sort
:
#include <algorithm>
using namespace std;
int main()
{
vector<int> v(2000);
sort(v.begin(), v.end());
}
método de clasificación sin std::sort
:
// sorting myArray ascending
int iTemp = 0;
for (int i = 0; i < ARRAYSIZE; i++)
{
for (int j = i + 1; j <= ARRAYSIZE; j++)
{
// for descending sort change ''<'' with ''>''
if (myArray[j] < myArray[i])
{
iTemp = myArray[i];
myArray[i] = myArray[j];
myArray[j] = iTemp;
}
}
}
Run ejemplo completo:
#include <iostream> // std::cout, std::endl /* http://en.cppreference.com/w/cpp/header/iostream */
#include <cstdlib> // srand(), rand() /* http://en.cppreference.com/w/cpp/header/cstdlib */
#include <ctime> // time() /* http://en.cppreference.com/w/cpp/header/ctime */
int main()
{
const int ARRAYSIZE = 10;
int myArray[ARRAYSIZE];
// populate myArray with random numbers from 1 to 1000
srand(time(0));
for (int i = 0; i < ARRAYSIZE; i++)
{
myArray[i] = rand()% 1000 + 1;
}
// print unsorted myArray
std::cout << "unsorted myArray: " << std::endl;
for (int i = 0; i < ARRAYSIZE; i++)
{
std::cout << "[" << i << "] -> " << myArray[i] << std::endl;
}
std::cout << std::endl;
// sorting myArray ascending
int iTemp = 0;
for (int i = 0; i < ARRAYSIZE; i++)
{
for (int j = i + 1; j <= ARRAYSIZE; j++)
{
// for descending sort change ''<'' with ''>''
if (myArray[j] < myArray[i])
{
iTemp = myArray[i];
myArray[i] = myArray[j];
myArray[j] = iTemp;
}
}
}
// print sorted myArray
std::cout << "sorted myArray: " << std::endl;
for (int i = 0; i < ARRAYSIZE; i++)
{
std::cout << "[" << i << "] -> " << myArray[i] << std::endl;
}
std::cout << std::endl;
return 0;
}
puedes usar,
std::sort(v.begin(),v.end());
puede usar sort () en C ++ STL. Función sort () Sintaxis:
sort(array_name, array_name+size)
So you use sort(v, v+2000);
#include <algorithm>
static const size_t v_size = 2000;
int v[v_size];
// Fill the array by values
std::sort(v,v+v_size);
En C++11 :
#include <algorithm>
#include <array>
std::array<int, 2000> v;
// Fill the array by values
std::sort(v.begin(),v.end());
//It is working
#include<iostream>
using namespace std;
void main()
{
int a[5];
int temp=0;
cout<<"Enter Values"<<endl;
for(int i=0;i<5;i++)
{
cin>>a[i];
}
for(int i=0;i<5;i++)
{
for(int j=0;j<5;j++)
{
if(a[i]>a[j])
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
}
cout<<"Asending Series"<<endl;
for(int i=0;i<5;i++)
{
cout<<endl;
cout<<a[i]<<endl;
}
for(int i=0;i<5;i++)
{
for(int j=0;j<5;j++)
{
if(a[i]<a[j])
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
}
cout<<"Desnding Series"<<endl;
for(int i=0;i<5;i++)
{
cout<<endl;
cout<<a[i]<<endl;
}
}