当前位置: 首页 > news >正文

Quick Sort

#include <iostream>
using namespace std;

void QuickSortCore(int a[], int start, int end)
{
    if (start > end)
        return;
    int key = a[start];
    int blank = start;
    int left = start + 1;
    int right = end;

    while(left <= right){//维护left right blank key
        if (blank < left){
            if (key <= a[right]){
                right--;
                continue;
            }
            else{
                a[blank] = a[right];
                blank = right--;
                continue;
            }
        }
        else if (blank > right){
            if (key >= a[left]){
                left++;
                continue;
            }
            else{
                a[blank] = a[left];
                blank = left++;
                continue;
            }
        }
    }
    a[blank] = key;

    QuickSortCore(a, start, blank - 1);
    QuickSortCore(a, blank + 1, end);
}

void QuickSort(int a[], int len){
    if (!a || len < 0)
        return;

    QuickSortCore(a, 0, len-1);
}


int main()
{
    int a[] = {3,6,5,81,94,53,0,12,4,2,4,2,1};
    QuickSort(a, 13);
    return 0;
}

 

 

 

 

 

EOF

相关文章:

  • 别人的技术专长
  • [笔记]http权威指南(2)
  • 程序员的奋斗史(十)——谈项目管理
  • 火车座次小知识
  • 我看TechEd 2012之App时代降临
  • 该开始BS了
  • MySQL 5.6的72个新特性
  • mongoDB 入门指南、示例
  • STP HSRP和NAT结合实现网络出口的冗余和次优路径分析
  • MongoDB高级查询[聚合Group]
  • Eclipse快速打开文件和cmd
  • windows设置administrator密码为空
  • 各国家域名总量统计Top10:美国德国中国居前三
  • 分享纯CSS3编写的的精美动画进度条(附源码)
  • java基础----Exception
  • 【腾讯Bugly干货分享】从0到1打造直播 App
  • JavaScript服务器推送技术之 WebSocket
  • Java读取Properties文件的六种方法
  • MySQL数据库运维之数据恢复
  • ReactNative开发常用的三方模块
  • vue2.0一起在懵逼的海洋里越陷越深(四)
  • 阿里云ubuntu14.04 Nginx反向代理Nodejs
  • 百度地图API标注+时间轴组件
  • 高性能JavaScript阅读简记(三)
  • 记一次和乔布斯合作最难忘的经历
  • 力扣(LeetCode)357
  • 全栈开发——Linux
  • 日剧·日综资源集合(建议收藏)
  • 小李飞刀:SQL题目刷起来!
  • 《天龙八部3D》Unity技术方案揭秘
  • 3月27日云栖精选夜读 | 从 “城市大脑”实践,瞭望未来城市源起 ...
  • Unity3D - 异步加载游戏场景与异步加载游戏资源进度条 ...
  • ​LeetCode解法汇总2304. 网格中的最小路径代价
  • ​Linux Ubuntu环境下使用docker构建spark运行环境(超级详细)
  • # 执行时间 统计mysql_一文说尽 MySQL 优化原理
  • ### Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException
  • #define、const、typedef的差别
  • #前后端分离# 头条发布系统
  • (NSDate) 时间 (time )比较
  • (SpringBoot)第七章:SpringBoot日志文件
  • (zhuan) 一些RL的文献(及笔记)
  • (八)光盘的挂载与解挂、挂载CentOS镜像、rpm安装软件详细学习笔记
  • (二)基于wpr_simulation 的Ros机器人运动控制,gazebo仿真
  • (附源码)ssm基于web技术的医务志愿者管理系统 毕业设计 100910
  • (一)SpringBoot3---尚硅谷总结
  • (一)Thymeleaf用法——Thymeleaf简介
  • (一)硬件制作--从零开始自制linux掌上电脑(F1C200S) <嵌入式项目>
  • ..回顾17,展望18
  • .bat批处理(一):@echo off
  • .NET 8 编写 LiteDB vs SQLite 数据库 CRUD 接口性能测试(准备篇)
  • .net core IResultFilter 的 OnResultExecuted和OnResultExecuting的区别
  • .NET Remoting学习笔记(三)信道
  • .NET 读取 JSON格式的数据
  • .NET/C# 反射的的性能数据,以及高性能开发建议(反射获取 Attribute 和反射调用方法)
  • .net知识和学习方法系列(二十一)CLR-枚举