惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

N
News and Events Feed by Topic
V
V2EX
博客园 - 【当耐特】
Vercel News
Vercel News
雷峰网
雷峰网
爱范儿
爱范儿
WordPress大学
WordPress大学
云风的 BLOG
云风的 BLOG
S
Securelist
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Microsoft Azure Blog
Microsoft Azure Blog
F
Full Disclosure
有赞技术团队
有赞技术团队
Hugging Face - Blog
Hugging Face - Blog
NISL@THU
NISL@THU
www.infosecurity-magazine.com
www.infosecurity-magazine.com
Attack and Defense Labs
Attack and Defense Labs
Application and Cybersecurity Blog
Application and Cybersecurity Blog
Hacker News - Newest:
Hacker News - Newest: "LLM"
Microsoft Security Blog
Microsoft Security Blog
腾讯CDC
P
Proofpoint News Feed
B
Blog
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
K
Kaspersky official blog
I
InfoQ
Google Online Security Blog
Google Online Security Blog
L
LINUX DO - 最新话题
Project Zero
Project Zero
Engineering at Meta
Engineering at Meta
V
Visual Studio Blog
AI
AI
Schneier on Security
Schneier on Security
B
Blog RSS Feed
T
Tor Project blog
H
Help Net Security
H
Hackread – Cybersecurity News, Data Breaches, AI and More
L
LINUX DO - 热门话题
阮一峰的网络日志
阮一峰的网络日志
S
Security @ Cisco Blogs
T
Threat Research - Cisco Blogs
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
C
Cyber Attacks, Cyber Crime and Cyber Security
G
Google Developers Blog
Google DeepMind News
Google DeepMind News
V2EX - 技术
V2EX - 技术
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
A
Arctic Wolf
Webroot Blog
Webroot Blog
Recent Commits to openclaw:main
Recent Commits to openclaw:main

青空之蓝

[青空之蓝-2023] - 色彩 | 青空之蓝 [青空之蓝-2022] - 平静 | 青空之蓝 [青空之蓝-2021] - 远望 | 青空之蓝 浅谈垃圾回收 | 青空之蓝 浅谈泛型擦除 | 青空之蓝 浅谈单点登录 | 青空之蓝 使用 Kotlin 编写 Spring 测试 | 青空之蓝 设计模式系列文章 | 青空之蓝 从零实现一个 Java 微框架 - IoC | 青空之蓝 从零实现一个 Java 微框架 - 前言 | 青空之蓝 浅谈 JVM:类加载 | 青空之蓝 浅谈 IO | 青空之蓝 浅谈并发:synchronized & ReentrantLock | 青空之蓝 浅谈并发:CAS & AQS | 青空之蓝 浅谈并发:ThreadLocal | 青空之蓝 浅谈并发:三大特性 | 青空之蓝 浅谈组合注解 & 注解别名 | 青空之蓝 [青空之蓝-2020]-迷茫 | 青空之蓝 Java 系列文章 | 青空之蓝 HTTP 系列文章 | 青空之蓝 浅谈 EatWhatYouKill | 青空之蓝 浅谈可扩展线程池 | 青空之蓝 聊聊写框架 | 青空之蓝 聊聊现状-[2020-09] | 青空之蓝 浅谈并发:锁 | 青空之蓝 浅谈并发:基础 | 青空之蓝 浅谈缓存 | 青空之蓝 无须定义类,Spring 快速注入 Json 参数 | 青空之蓝 浅谈 Proxy 和 Aop | 青空之蓝 从零实现一个 PHP 微框架 - 初始化请求 | 青空之蓝 为 Vue3 添加一个简单的 Store | 青空之蓝 从零实现一个 PHP 微框架 - 服务提供者 | 青空之蓝 WSL2 踩坑记录 | 青空之蓝 浅谈浏览器Event Loop [更新] | 青空之蓝 从零实现一个 PHP 微框架 - Bootstrap 启动加载 | 青空之蓝 从零实现一个 PHP 微框架 - IoC 容器 | 青空之蓝 从零实现一个 PHP 微框架 - PSR & Composer | 青空之蓝 从零实现一个 PHP 微框架 - 前言 | 青空之蓝 MVVM 简单实现 | 青空之蓝 浅谈 DI 和 IoC | 青空之蓝 中间件实现 [PHP] | 青空之蓝 告别 Windows 终端的难看难用,打造好用的 PowerShell | 青空之蓝 VSCode Java输出中文乱码问题解决[更新] | 青空之蓝 浅谈浏览器渲染 | 青空之蓝 Vue-Cli@2 项目迁移日志 | 青空之蓝 Laragon & Scoop 集成踩坑记录 | 青空之蓝 「一行代码」优雅管理 Windows 软件 | 青空之蓝 [青空之蓝-2019]-年度总结 | 青空之蓝 为Vue添加简单的Store | 青空之蓝 为React添加简单的Store | 青空之蓝 为Vuex添加同步Action | 青空之蓝 浅谈B+树 | 青空之蓝 浅谈跳表 | 青空之蓝 浅谈数据库索引 | 青空之蓝 MySQL事务隔离 | 青空之蓝 算法复杂度分析(1) | 青空之蓝 一年来的经验总结 | 青空之蓝 Acrylic - VSCode Extension | 青空之蓝 ace编辑器设置惯性滚动 | 青空之蓝 Java二叉树实现 | 青空之蓝 Java图实现 | 青空之蓝 为apt方式安装的nginx重新编译增加WebDAV | 青空之蓝 XK-Editor - 一个支持富文本和Markdown的编辑器 | 青空之蓝 JS生成列表树 | 青空之蓝 Laravel生成目录树 | 青空之蓝 XK-Note - 集各种神奇功能的云笔记 | 青空之蓝 PHP GD生成验证码 | 青空之蓝 PHP GD图片处理[转换格式-水印-缩略图] | 青空之蓝 Origami - 简洁轻快的WordPress主题 | 青空之蓝 为WordPress启用WorkBox | 青空之蓝 [青空之蓝-2018]-年度总结 | 青空之蓝 VSCode Java手动导入jar和源码包 | 青空之蓝 Windows IP变化自动发送邮件 | 青空之蓝 C链表实现重制版 | 青空之蓝 C 结构体的定义和使用 | 青空之蓝 图的搜索(遍历) - BFS & DFS | 青空之蓝 Java链表实现 | 青空之蓝 C 插入排序 | 青空之蓝 C 归并排序 | 青空之蓝 C语言链表实现 | 青空之蓝 VSCode配置Java调试环境[Windows] | 青空之蓝 C 选择排序 | 青空之蓝 C 冒泡排序 | 青空之蓝 VSCode配置PHP调试环境[Windows] | 青空之蓝 VSCode配置C/C++ GDB调试环境[Windows] | 青空之蓝 WordPress友情链接模板 | 青空之蓝 Intel Optane 傲腾内存体验 | 青空之蓝 Mysql双机热备实战 | 青空之蓝 博客一年记录 | 青空之蓝 为WordPress启用Service Worker | 青空之蓝 Bing每日一图API | 青空之蓝 iframe延迟加载 | 青空之蓝 写在2018年高考前 | 青空之蓝 The Fox主题汉化分享 | 青空之蓝 [青空之蓝-2017]-崭新 | 青空之蓝 本博客评论规则 | 青空之蓝 世界,您好! | 青空之蓝
C 快速排序 | 青空之蓝
Otstar Lin · 2018-11-27 · via 青空之蓝

开头和介绍都是不存在的( ̄︶ ̄)↗

这次是真修复了,坑爹呀,LintCode 提交了好几次,终于 AC 了,应该是没问题了 ≧ ﹏ ≦,另外我这代码只能算还行只打败了 51%的提交 (捂脸

#include <stdio.h>
#define N 10 //定义要排序的数组个数

//快速排序控制Demo

//快速排序函数
int* Quick_Sort(int left, int right, int nums[])
{
    //定义标记,并设置标记为排序数组最末端,即right的后一个数
    int pivot = right + 1;
    //存储最左端,为下一轮存储left标记
    int left_temp = left;
    //临时交换数
    int temp;
    //判断left标记是否已经到达right或right之后,若是则代表此轮排序的判断部分已经完成
    while(left < right)
    {
        //判断left标记的数是否小于标记的数,若是则向右移动left标记
        while(nums[left] < nums[pivot])
        {
            left++;
            if(left > right) break;
        }
        //判断right标记是否大于标记的数,若是则向左移动right标记
        while(nums[right] > nums[pivot])
        {
            right--;
            if(left > right) break;
        }
        //若left标记不小于right则代表此轮已经完成
        if(left >= right) break;
        //若不是,则将left和right标记数交换
        temp = nums[left];
        nums[left] = nums[right];
        nums[right] = temp;
    }
    //判断标记数是否是最大的,即left标记是否已经到达标记数,若不是则交换left标记数与标记数
    if(nums[left] >= nums[pivot])
    {
        temp = nums[left];
        nums[left] = nums[pivot];
        nums[pivot] = temp;
    }
    //判断是否要进行下一轮,若是则进行下一轮
    if(left_temp < left - 1) Quick_Sort(left_temp, left - 2, nums);
    if(left + 1 < pivot) Quick_Sort(left + 1, pivot - 1, nums);
    //返回排序好的数组
    return nums;
}

int main(int argc, char const *argv[])
{
    //定义要进行排序的数组
    int nums[N] = {5, 4, 7, 12, 4, 9, 2, 1, 13, 2};
    //设置数组长度
    int n = 10;
    //调用排序函数并将排序好的头指针传给p
    int *p = Quick_Sort(0, n - 2, nums);
    int i;
    //循环输出排序好的数组
    for(i = 0; i < n; i++)
    {
        printf("%d ",p[i]);
    }
    return 0;
}
#include <stdio.h>
#define N 10 //定义要排序的数组个数

//快速排序控制Demo

//快速排序函数
int* Quick_Sort(int left, int right, int nums[])
{
    //定义标记,并设置标记为排序数组最末端,即right的后一个数
    int pivot = right + 1;
    //存储最左端,为下一轮存储left标记
    int left_temp = left;
    //临时交换数
    int temp;
    //判断left标记是否已经到达right或right之后,若是则代表此轮排序的判断部分已经完成
    while(left < right)
    {
        //判断left标记的数是否小于标记的数,若是则向右移动left标记
        while(nums[left] < nums[pivot])
        {
            left++;
            if(left > right) break;
        }
        //判断right标记是否大于标记的数,若是则向左移动right标记
        while(nums[right] > nums[pivot])
        {
            right--;
            if(left > right) break;
        }
        //若left标记不小于right则代表此轮已经完成
        if(left >= right) break;
        //若不是,则将left和right标记数交换
        temp = nums[left];
        nums[left] = nums[right];
        nums[right] = temp;
    }
    //判断标记数是否是最大的,即left标记是否已经到达标记数,若不是则交换left标记数与标记数
    if(nums[left] >= nums[pivot])
    {
        temp = nums[left];
        nums[left] = nums[pivot];
        nums[pivot] = temp;
    }
    //判断是否要进行下一轮,若是则进行下一轮
    if(left_temp < left - 1) Quick_Sort(left_temp, left - 2, nums);
    if(left + 1 < pivot) Quick_Sort(left + 1, pivot - 1, nums);
    //返回排序好的数组
    return nums;
}

int main(int argc, char const *argv[])
{
    //定义要进行排序的数组
    int nums[N] = {5, 4, 7, 12, 4, 9, 2, 1, 13, 2};
    //设置数组长度
    int n = 10;
    //调用排序函数并将排序好的头指针传给p
    int *p = Quick_Sort(0, n - 2, nums);
    int i;
    //循环输出排序好的数组
    for(i = 0; i < n; i++)
    {
        printf("%d ",p[i]);
    }
    return 0;
}

C 快速排序

https://blog.ixk.me/post/c-quick-sort
  • 许可协议

    BY-NC-SA

  • 本文作者

    Otstar Lin

  • 发布于

    2018/11/27

转载或引用本文时请遵守许可协议,注明出处、不得用于商业用途!

Java链表实现C 插入排序