2011-12-27 4 views
-1

Я этот код, который заказывает номера, начиная с самого большого, но его любопытное заблуждение меня:порядковые номера в C++

#include <iostream> 
using namespace std; 

int main() 
{ 
const int n=5; 
int i, j, t, a[n]={15,9,8,7,5}; 

cout << "a[]={"; 
for(i=0; i<n; i++) cout << a[i] << " "; 
cout << "} \n\n"; 

for(i=0; i<n-1; i++) 
    for(j=i+1; j<n; j++) 
    if(a[i]>a[j]){ 
     t=a[i]; 
     a[i]=a[j]; 
     a[j]=t; 
    } 

cout << "Pas radhitjes inkrementuese \n\n" 
     << "a[]={"; 
for(i=0; i<n; i++) cout << a[i] << " "; 
cout << "} \n\n"; 


cin.get();cin.get(); 
return 0; 
} 

Есть ли другой способ сделать заказ номера от 1 массива, начиная с самый большой/самый низкий номер?

+3

http://en.wikipedia.org/wiki/Sorting_algorithm –

+4

То, что у вас есть, называется «сортировка пузыря». У вас есть контрольный двойной цикл и своп. –

+0

Просто для информационных целей существует множество различных алгоритмов сортировки. Какой из них наиболее эффективен, зависит от ожидаемого ввода, количества элементов, которые нужно отсортировать, и, по крайней мере, нескольких других соображений. – Terry

ответ

4

Ну есть выбор сортировки, сортировка вставками, сортировка слиянием, быстрая сортировка, куча сортировки и т.д. Вы можете найти много информации относительно конкретной внедрения в Интернете. Если вам нужен простой способ, независимо от фактической реализации алгоритма сортировки, вы можете использовать std::sort для выполнения этого.

4

std::sort обычный путь при сортировке StuFF

0

вы можете просто изменить свой код этой

for(i=0; i<n-1; i++) 
    for(j=0; j<n-1; j++) 

если вы хотите более оптимальный сорт вы можете использовать один из алгоритмов сортировки на

http://en.wikipedia.org/wiki/Sorting_algorithm

0

У вас есть кодировки и объяснение для всех алгоритмы - http://mathbits.com/mathbits/compsci/arrays/sorting.htm

Предлагаю вам попробовать весь алгоритм, и это поможет, если в случае t он образовательное обучение.

Смежные вопросы