问题描述:给一组整数,按照升序排序,使用选择排序,冒泡排序,插入排序或者任何 O(n2) 的排序算法。
样例对于数组 [3, 2, 1, 4, 5], 排序后为:[1, 2, 3, 4, 5]。
思路:最基本的几个O(n2)的排序算法,选择排序,冒泡排序和插入排序。冒泡排序,遍历数组,把当前数字的后面所有的数字都遍历一遍,遇到小的跟当前数字交换,
这样遍历的过程中,所有大的数字都到数组的后面去了
代码:
class Solution {
public:
/**
* @param A an integer array
* @return void
*/
void sortIntegers(vector<int>& A) {
// Write your code here
for(int i=0;i<A.size();++i)
{for(int j=i+1;j<A.size();++j)
{if(A[i]>A[j])
swap(A[i],A[j]);
}
}
}
};
感想:这是最基本的排序算法。