C++的四种经典排序

1、冒泡排序      //[3,1,4,2,5]  从小到大
时间复杂度:O(n^2)
空间复杂度:O(1)
稳定

void bubbleSort(vector& nums)
{
    for(int i=0; inums[j+1])
            {
                num[j] = nums[j] + nums[j+1];
                nums[j+1] = nums[j] -nums[j+1];
                nums[j] = nums[j] -nums[j+1];
            }
        }
    }
}

2、选择排序      //[3,1,4,2,5]  从小到大
时间复杂度:O(n^2)
空间复杂度:O(1)
不稳定

void selectSort(vector& nums)
{
    for(int i=0; i nums[index])
                index = j;
        }
        nums[index] = nums[index] + nums[nums.size()-i-1];
        nums[nums.size()-i-1] = nums[index] - nums[nums.size()-i-1];
        nums[index] = nums[index] - nums[nums.size()-i-1];
    }
}

3、插入排序      //[3,1,4,2,5]  从小到大
时间复杂度:O(n^2)
空间复杂度:O(1)
稳定
 

void insertSort(vector& nums)
{
    for(int i=1; i0; --j)
        {
            if(current

4、快速排序      //[3,1,4,2,5]  从小到大
时间复杂度:O(nlogn)
空间复杂度:O(nlogn)
不稳定
 

void quickSort(vector& nums, int left, int right)
{
    if(left >= right)
        return;
    int i=left;
    int j=right;
    int base=nums[left];
    while(i= base)
            j--;
        while(i

 

你可能感兴趣的:(C++)