注意:我不小心发布了这个问题而没有指定我正在使用哪个STL实现,我觉得它无法真正更新,因为它会使大多数答案过时.
所以,正确的问题是 - 假设我使用的是Microsoft Visual C++的STL库,在下面的代码中使用了哪种排序算法?:
list<int> mylist;
// ..insert a million values
mylist.sort();
Run Code Online (Sandbox Code Playgroud) 我已经编写了这个代码用于排序,它运行完全正常.我想知道如何减少时间复杂度.
#include <iostream>
using namespace std;
void sort(int a[], int n)
{
int min, temp;
for(int i=0;i<n-1;i++)
{
min=i;
for(int j=i+1;j<n;j++)
{
if(a[min]>a[j])
{
min=j;
}
}
temp=a[i];
a[i]=a[min];
a[min]=temp;
}
for(int i=0;i<n;i++)
{
cout<<a[i]<<endl;
}
}
int main()
{
int n;
cin>>n;
int arr[n];
for(int i=0;i<n;i++)
{
cin>>arr[i];
}
sort(arr,n);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
如果没有其他方法可以更改它,那么我是否必须更改算法?如果是,那么请建议一个算法?
谢谢.