1、选择排序
从头开始排,每一轮能排好最前面的元素,找到位置后才交换。
class Solution {
public:vector<int> sortArray(vector<int>& nums) {int n = nums.size();int minidx;for (int i = 0; i < n; i++) {minidx = i;for (int j = i + 1; j < n; j++) {if (nums[j] < nums[minidx]) {minidx = j;}}int t = nums[i];nums[i] = nums[minidx];nums[minidx] = t;}return nums;}
};
2、冒泡排序
每次排好最后一个,从前往后遍历,两两交换
class Solution {
public:vector<int> sortArray(vector<int>& nums) {int n=nums.size();for(int i=n-1;i>=0;i--){for(int j=0;j<i;j++){if(nums[j]>nums[j+1]){int t=nums[j];nums[j]=nums[j+1];nums[j+1]=t;}}}return nums;}
};
3、插入排序
每轮新加一个元素,与前面已经排好的元素进行比较,两两交换直到找到合适的位置插入。
class Solution {
public:vector<int> sortArray(vector<int>& nums) {int n=nums.size();for(int i=1;i<n;i++){for(int j=i-1;j>=0&&nums[j]>nums[j+1];j--){int t=nums[j];nums[j]=nums[j+1];nums[j+1]=t;}}return nums;}
};