给一组整数,按照升序排序,使用选择排序,冒泡排序,插入排序或者任何 O(n2) 的排序算法。
您在真实的面试中是否遇到过这个题?
样例 1:输入: [3, 2, 1, 4, 5]输出: [1, 2, 3, 4, 5]样例解释: 返回排序后的数组。样例 2:输入: [1, 1, 2, 1, 1]输出: [1, 1, 1, 1, 2]样例解释: 返回排好序的数组。
首先你应该掌握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;}
即可:
本文发布于:2024-02-01 00:22:00,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170671812132460.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |