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;
}
};