사용자가 10 개의 난수를 입력하게하고 가장 작은 C++ 언어를 사용하여 이것을 수행하는 가장 좋은 방법은 무엇입니까?가장 작은 것부터 가장 큰 것까지의 C++ 정렬 숫자
답변
#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
vector<int> vec;
vec.push_back(1);
vec.push_back(4);
vec.push_back(3);
vec.push_back(2);
sort(vec.begin(), vec.end());
for (vector<int>::const_iterator it=vec.begin(); it!=vec.end(); ++it) {
cout << *it << " ";
}
cout << endl;
return 0;
}
직접 작성할 수 있지만 실제로는 qsort 기능을 사용해야합니다.
그 반대입니다. C++에서 'qsort'를 사용할 좋은 이유는 거의 없습니다. –
질문이 @ Jerry의 의견에 대해 자세히 설명하기 위해 C (not C++) –
으로 표시 되었다면 올바른 것이었을 것입니다. 대신에'std :: sort'를 사용해야합니다. – jalf
std::vector<int> numbers;
// get the numbers from the user here.
std::sort(numbers.begin(), numbers.end());
@ Jerry : 주문을 유지하는 구조를 사용하지 않는 이유는 무엇입니까? –
@Matthieu : 마지막에 한 번만 정렬하는 것이 더 빠를 것 같습니다. –
@kotlinski : 그 점에 동의하고 작은 입력 세트에'vector'를 사용하는 것은 조기에 최적화 된 것처럼 보입니다! 점근 적 성능은 동등한 O (N log N)이므로 코드를 복잡하게 만드는 대신 여기에 일정한 요소를 적용 할 것입니다. –
요구 사항에 따라 다릅니다. 그것들을 정렬하기를 원하고 속도가 적당한 수준이라면, 삽입 정렬은 그런 작은 n 값 (10)에 대해서는 괜찮을 것입니다. 신속하게 (처음부터) 구현하고 작은 세트 크기에 적합합니다.
유지하는 구조를 사용하여 순서 : std::multiset
#include <iostream>
#include <set>
#include <boost/lexical_cast.hpp>
int main(int argc, char* argv[])
{
std::multiset<int> set;
for (int i = 1; i != argc; ++i) {
set.insert(boost::lexical_cast<int>(argv[i]));
}
for (int i: set) { std::cout << i << " "; }
std::cout << "\n";
}
호출 :
$ yourprogram 1 5 4 6 7 82 6 7 8
(참고 : 인수의 수는 제한되어 있지 않은)
'for (int i : set)'은 C++처럼 보이지 않습니다. –
@kotlinski : C++ 0x 새로운'range-based for' 문 (** 6.5.4 [stmt.ranged] **), 어떤 컴파일러가 이미 구현했는지 모르겠다. –
//this is sorting min--->max without pointers
#include<iostream>
using namespace std;
int main()
{int n;
cout<<"How much numbers you wanna sort? "<<endl;
cin>>n;
int broj[n];
cout<<"Enter numbers: "<<endl;
for(int k=0;k<n;k++)
{
cin>>broj[k];
}
int min=0;
for(int z=0;z<n;z++)
{
loop:
min=broj[z];
for(int i=z;i<n;i++)
{
if(min<=broj[i])
{
}
else
{
min=broj[i];
broj[i]=broj[z];
broj[z]=min;
goto loop;
}
}
}
cout<<endl<<"--------------"<<endl;
for(int j=0;j<n;j++)
{
cout<<broj[j]<<endl;
}
return 0;
}
약간의 설명을 추가해보십시오 –
그래서 이것은 단지 옛날 학교 프로그램입니다. for와 goto loops ...이 프로그램의 핵심은 array.min의 다른 인덱스에있는 숫자를 바꿔주는 "i"for 루프입니다. 변수는 가변적입니다 우리가 사용하는 값의 더 쉬운 "전송"에 대한 것입니다. 당신이 그것을 실행할 때 한 줄씩 단계별로 갈 수있는 Visual Studio 나 프로그램을 가지고 있다면 모든 조언에서이 개념을 이해하는 데 도움이 될 것입니다. ..조금 더 길지만 프로그래밍 방식을 개발할 것입니다. –
- 1. 가장 높은 것부터 가장 낮은 것까지 목록 정렬
- 2. 날짜 정렬 - 가장 오래된 것부터 가장 오래된 것
- 3. 배열에서 가장 작은 숫자와 가장 큰 숫자를 찾는 방법은 무엇입니까?
- 4. javascript에서 스위치 문을 사용하여 가장 높은 숫자와 가장 작은 숫자
- 5. OS X에서 도킹 프로세스를 시작하는 것부터 시작하는 것까지의 차이점
- 6. 이벤트 로그 읽기 가장 오래된 것부터 가장 오래된 것
- 7. 엄청난 양의 숫자 중에서 가장 큰 숫자를 얻는 방법은 무엇입니까?
- 8. 매트릭스의 가장 큰 고유 값을 계산할 때 가장 작은 C++ 패키지는 무엇입니까?
- 9. 가장 작은 창 찾기
- 10. 가장 작은 LISP?
- 11. 가장 빠른 정렬 기능
- 12. 가장 작은 기능 UI 단위?
- 13. 7-zip을 사용하여 일괄 처리 : 가장 작은 파일부터 가장 큰 파일까지 압축
- 14. 세트에서 다음으로 작은 숫자와 가장 큰 숫자를 찾는 빠른 알고리즘
- 15. 큰 테이블에서 작은 선택을 쿼리하는 가장 빠른 방법은 무엇입니까?
- 16. 가장 큰 합
- 17. 배열의 가장 큰 단어
- 18. 가장 큰 ID를 얻으십시오
- 19. 가장 간단한 숫자/날짜를 찾기위한 PHP 단축키
- 20. C++ 바이너리 트리에서 가장 큰 수 찾기
- 21. 작은 값과 큰 숫자 (또는 문자열)을 압축
- 22. 변수 중 가장 작은 값을 찾으십니까?
- 23. 가능한 가장 작은 유형을 사용해야합니까?
- 24. 가장 작은 자바 SVG 엔진
- 25. 큰 숫자 변환 문제
- 26. 슬롯이 가장 큰 행 선택
- 27. 그룹 정렬 된 모델에서 가장 큰 계산을 반환하려고 시도합니다.
- 28. 큰 수의 집합에 대한 가장 효율적인 정렬 알고리즘
- 29. 가장 큰 방법은 페이징 큰 Resultset -Java
- 30. Java에서 까다로운 숫자 정렬 질문입니다. if를 사용하여 오름차순 정렬 방법?
힌트 : http://www.cplusplus.com/referen ce/algorithm/sort/ –