Как использовать стандартную библиотеку шаблонов std::sort() для сортировки массива, объявленного как int v[2000];
std::sort()
int v[2000]
Предоставляет ли C ++ некоторую функцию, которая может получить начальный и конечный индексы массива?
Используйте функцию C ++ std::sort:
std::sort
#include <algorithm> using namespace std; int main() { vector<int> v(2000); sort(v.begin(), v.end()); }
метод сортировки без 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; } } }
Выполнить полный пример:
#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; }
вы можете использовать,
std::sort(v.begin(),v.end());