如果我有用戶輸入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'的好理由。 – 2011-02-24 08:20:36
如果問題標記爲C(而不是C++) – 2011-02-24 08:23:14
來闡述@Jerry的評論,那麼你應該是正確的,而應該使用'std :: sort'。 – jalf 2011-02-24 08:23:44
std::vector<int> numbers;
// get the numbers from the user here.
std::sort(numbers.begin(), numbers.end());
@Jerry:爲什麼不使用維持排序的結構? – 2011-02-24 08:50:29
@Matthieu:最後一次排序可能會更快。 – 2011-02-24 08:53:36
@kotlinski:雖然我同意這個觀點,並且對小輸入集合使用'vector',但它看起來還不成熟!漸近性能相當於O(N log N),所以你需要在這裏考慮常量因子,代價是複雜的代碼。 – 2011-02-24 09:23:51
這取決於您的要求。如果你只是想對它們進行排序,並且速度只是中等的關注,那麼插入排序對於這樣一個小的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
(注:不限制參數的個數)
'。 – 2011-02-24 12:51:54
@kotlinski:C++ 0x新'基於範圍的'語句(** 6.5.4 [stmt.ranged] **),我不知道是否有編譯器已經實現它。 – 2011-02-24 13:42:17
//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;
}
嘗試添加一些解釋 – 2016-02-05 20:50:53
所以這只是舊學校程序只是如果,爲和goto loops..so這個程序的核心是在這個「我」for循環,它取代了數組上的不同索引上的數字..min是可變的我們使用它來更容易地「傳輸」這些值。如果您有視覺工作室或某些可以一步一步(逐行)運行它的程序,那麼在我所有的建議中都會這樣做,這將有助於您理解這一概念。 ..它有點長,但有了這個,你將開發你的編程思維方式 – 2016-02-05 21:03:43
- 1. 從最小到最大排序數組
- 2. 從最小到最大排序
- 3. 從最小到最大排序
- 4. 排序表(從最大到最小)
- 5. 使用JOptionPane從最小到最大排序4個數字
- 6. 排序三個數字陣列從最小到最大
- 7. 按列排序數據從最小到最大或按字母順序排列
- 8. 從關係代數中的最大到最小排序
- 9. 如何排序從最大到最小的整數列表
- 10. 排序4整數,從最小到最大
- 11. 如何輕鬆地在Visual C#中從最大到最小的數組排序?
- 12. 如何使用遞歸排序從最小到最大的字符串數組?
- 13. 排序Perl的哈希從最大到最小
- 14. 有用戶排序列表從最小到最大
- 15. 重新排序下面效率從最小到最大
- 16. 排序從最大到最小根據出現在一列
- 17. 將輸出從最大到最小排序?
- 18. 將表格從最大到最小排序
- 19. .NET從最大到最小
- 20. R - 從最大到最小
- 21. 選擇排序 - 最小/最大索引
- 22. 排序類對象數據成員最大到最小
- 23. 如何從Pandas Python中的最大到最小的groupby數據進行排序
- 24. 從最小到最大數值排列數組的最有效方法?
- 25. 最小/最大字符數
- 26. 如何使用冒泡排序從最小到最大排序4個數組? C++
- 27. 創建從最大排序到最小排列的索引列表
- 28. 使用java對從最小到最大的數組進行排序
- 29. 期待從最小到最大的排序數組刪除重複項
- 30. 如何在數組中找到最大和最小數字c
提示: http://www.cplusplus.com/referen ce/algorithm/sort/ – 2011-02-24 08:18:32