
1.冒泡排序
class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
* 将给定数组排序
* @param arr int整型vector 待排序的数组
* @return int整型vector
*/
vector<int> MySort(vector<int>& arr) {
// write code here
if (arr.size()<=1) {
return arr;
}
for (int i=arr.size(); i>0; i--) {
for (int j=0; j<i-1; j++) {
if (arr[j]>arr[j+1]) {
swap(arr[j],arr[j+1]);
}
}
}
return arr;
}
void swap(int&a,int&b){
int tmp;
tmp=a;
a=b;
b=tmp;
}
};

2.快速排序
#include <vector>
class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
* 将给定数组排序
* @param arr int整型vector 待排序的数组
* @return int整型vector
*/
vector<int> MySort(vector<int>& arr) {
// write code here
if (arr.size() <= 1) {
return arr;
}
quicksort(arr, 0, arr.size() - 1);
return arr;
}
void quicksort(vector<int>& vec, int left, int right) {
if (left >= right) {
return;
}
int temp = vec[left]; //基准数
int i = left, j = right;
while (i < j) {
while (vec[j] >= temp&&i<j) {
j--;
}
while (vec[i] <= temp&&i<j) {
i++;
}
if (i < j) {
swap(vec[i], vec[j]);
}
}
vec[left] = vec[i];
vec[i] = temp;
quicksort(vec, left, i - 1);
quicksort(vec, i + 1, right);
return;
}
void swap(int& a, int& b) {
int tmp;
tmp = a;
a = b;
b = tmp;
}
};
