给一组整数,按照升序排序,使用选择排序,冒泡排序,插入排序或者任何 O(n2) 的排序算法。
您在真实的面试中是否遇到过这个题?
首先你应该掌握vector的基本操作(请参考:vector常用解法及详解)。
在代码段中添加:
sort(A.begin(),A.end());即可:
在代码段中添加:
for(vector<int>::iterator it = A.begin()+1;it != A.end();it++){ for(vector<int>::iterator it1 = A.begin();it1 != A.end()-1;it1++){ if(*it1>*(it1+1)){ int temp = *it1; *it1 = *(it1+1); *(it1+1) = temp; } } }即可:
在代码段中添加:
for(int i=1;i<A.size();i++){ for(int j=0;j<A.size()-i;j++){ if(A[j]>A[j+1]){ int temp = A[j]; A[j] = A[j+1]; A[j+1] = temp; } } }即可:
在代码段中添加:
for(int i=0;i<A.size();i++){ int min = i; for(int j=i;j<A.size();j++){ if(A[j]<A[min]){ min = j; } } int temp = A[i]; A[i] = A[min]; A[min] = temp; }即可:
在代码段中添加:
for(int i=1;i<A.size();i++){ int temp = A[i]; int j=i; while(j>0&&temp<A[j-1]){ A[j] = A[j-1]; j--; } A[j] = temp; }即可:
