首页 > 其他分享 >排序专题

排序专题

时间:2022-11-13 10:34:37浏览次数:50  
标签:std begin 专题 end int 排序

快速排序

#include<bits/stdc++.h>
using namespace std;
int a[5] = { 5,1,2,4,3 };
int partition(int begin, int end) {
    int pivot = begin - 1;
    for (int i = begin; i <= end - 1; i++) if (a[i] < a[end]) swap(a[i], a[++pivot]);
    swap(a[++ pivot], a[end]);
    return pivot;
}
void quicksort(int begin, int end) {
    if (begin < end) {
        int pivot = partition(begin, end);
        quicksort(begin, pivot - 1);
        quicksort(pivot + 1, end);
    }
}
int main() {
    quicksort(0, 4);
    for (int i = 0; i < 5; i++)cout << a[i] << " ";
    return 0;
}

 

标签:std,begin,专题,end,int,排序
From: https://www.cnblogs.com/-ark/p/16885508.html

相关文章

  • 堆排序用法
    因为堆结构只保证根节点比双子节点都大或小1  求最小的n个数:   构建n个数的大顶堆,依次弹出堆顶再往下调整(用例省略)2  求最大的n个数:   构建n个数的......
  • 快速排序需要注意的问题
    1  左右哨兵等于pivot的情况要接着走,不然有可能一直不动,无限循环2  需要先走右指针再走左指针,因为pivot在最左侧,最终停留点应该比pivot小,这样交换后小的在前; ......
  • #yyds干货盘点# 前端歌谣的刷题之路-第一百六十四题-快速排序
     前言我是歌谣我有个兄弟巅峰的时候排名c站总榜19叫前端小歌谣曾经我花了三年的时间创作了他现在我要用五年的时间超越他今天又是接近兄弟的一天人生难免坎坷大不了......
  • 排序函数的算法(day12)
    今天尝试了三种数字的排序法。目的为1)熟悉数组的操作2)熟悉循环笔者是做嵌入式的,不想再算法上做过多探究,自身水平和专业也不允许深入太多。现在直接给出三种排序函数。1.插值......
  • #yyds干货盘点# 动态规划专题:前缀和
    1.简述:描述给定一个长度为n的数组.接下来有q次查询,每次查询有两个参数l,r.对于每个询问,请输出输入描述:第一行包含两个整数n和q.第二行包含n个整数,表示.接下来q行,每......
  • C温故补缺(九):字节对齐与排序
    字节对齐与排序字节对齐的原因与字节排序取自:VisualEther原文档下载:Gitee_packed_packet用于结构体中变量在内存中的对齐.如typedefstructtest_s{inti;......
  • 算法题不等式计数问题常见解法-归并排序
    类型1:单个边界范围f(i)<d(j)这种格式的不等式,算法题经常询问我们满足这样的数对有多少。中间的符号也可换成任何等号不等号,也同样适用怎么计算呢?本质上,使用归并排序就是下面......
  • 冒泡排序
    洛谷1116概念//当然下面是争对升序排序冒泡是每次大当往最后移动,所有只需只需n-1次,每次移动完全,后面就不需要关,所以后面就要用j-i,表示不考虑最后的for(inti=0;i<n-......
  • 经典排序算法
    经典排序算法点击查看代码1、插入排序—直接插入排序(StraightInsertionSort)2、插入排序—希尔排序(Shell`sSort)3、选择排序—简单选择排序(SimpleSelectionSort)......
  • 二叉排序树
    二叉排序树点击查看代码定义:二叉排序树或者是一棵空树,或者是具有下列性质的二叉树:(1)若左子树不空,则左子树上所有结点的值均小于或等于它的根结点的值;(2)若右子树不空,则右......