`
steven-zhou
  • 浏览: 207880 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

荷兰国旗排序

阅读更多
有一整型一维数组,要求在时间复杂度为O(N)的情况下,把小于零的数置于数组的前面,大于零的数放置于数组后面。
void holandflag_sort(int a[], int size)
{
    int i, j, k;

    i = 0;
    j = 0;
    k = size - 1;

    while (j < k)
        switch (a[j]) {
        case RED:
            swap(a, i, j);
            i++;
            j++;
            break;
        case WHITE:
            j++;
            break;
        case BLUE:
            swap(a, j, k);
            k--;
            break;
        }
}

static inline void swap(int a[], int pa, int pb)
{
    int tmp;
    tmp = a[pa];
    a[pa] = a[pb];
    a[pb] = tmp;
}

分享到:
评论

相关推荐

    python 实现 排序 课程设计 代码

    荷兰国旗排序(Dutch National Flag Sort) 交换排序(Exchange Sort) 外部排序(External Sort) 侏儒排序(Gnome Sort) 堆排序(Heap Sort) 插入排序(Insertion Sort) 引入排序(Intro Sort) 迭代归并排序...

    数据结构搜索&排序算法题.zip

    T3:【荷兰国旗问题】 设一个有 n 个字符的数组 A[n],存放的字符只有 3 种:R(红色)、W(白色)和 B(蓝色)。设计一个算法重新放置字符,让所有的 R排列在最前面,W 排列在中间,B 排列在最后。要求每个字符只...

    LeetCodeAndSwordToOffer:LeetCode、SwordToOffer 等 Java 算法

    目录 02.字符串 03.树 04.哈希表 05.栈和队列 06.图 07.位运算 08.链表 程序基本输入输出 基础算法 ...冒泡排序 ...选择排序 ...荷兰国旗问题 Java 10 QuickSort 快速排序 Java 11 HeapSort 堆排序 Java 1

    leetcode中国-LeetCode:由Python和Go实现的LeetCode练习

    颜色分类(荷兰国旗问题) 四数之和 移除元素 数组操作 旋转图片 旋转数组 滑动窗口 无重复字符最长子串 树 验证二叉搜索树 图 拓扑排序 岛屿数量 单词搜索 回溯算法 组合总和 幂集 调度算法 动态规划 最大上升子序列 ...

    leetcode中国-Data-Structures-And-Algorithms-Roadmap:数据结构和算法路线图

    荷兰国旗算法 滑动窗口 两个指针 基于遍历的问题 基于旋转的问题 • 递归和回溯 理解递归 基本递归问题 了解回溯 分而治之的算法 • 排序算法 插入排序 二元插入排序 选择排序 冒泡排序 归并排序 快速排序 基数排序 ...

    leetcode145-Algorithm:数据结构与算法学习

    荷兰国旗问题(partition) 最小和问题(MergeSort) 逆序对个数问题(MergeSort) 常用算法 LRU算法实现:leetcode145题 表达式求值:中缀表达式转后缀表达式求值 树形DP 给定一颗二叉树的头节点,返回这颗二叉树...

    leetcode分类-Leetcode:力码练习

    quicksort/荷兰国旗问题:#75 离线:归并排序 特殊情况:合并排序列表 就地:#88 搜索 可能的重新排序:排序(+ 二进制搜索)。 注意:对于具有后 = 中 - 1 和前 = 后 + 1 的二进制搜索通常是最快的。 但是,如果...

    程序员编程艺术:面试和算法心得.pdf

    o 2.2 寻找和为定值的两个数 o 2.3 寻找和为定值的多个数 o 2.4 最大连续子数组和 o 2.5 跳台阶 o 2.6 奇偶排序 o 2.7 荷兰国旗 o 2.8 矩阵相乘 o 2.9 完美洗牌 o 2.15 本章习题 第三章 树 o 3.0 本章导读 o 3.1 ...

    leetcode中国-LeetCode:力码

    荷兰国旗 9 贪心思想 保证每次操作都是局部最优的,并且最后得到的结果是全局最优的。 10 二分查找 11 分治 12 搜索 BFS: DFS 解决连通性问题: 解决排列问题: 解决组合问题: 13 动态规划 斐波那契数列 矩阵路径 ...

    leetcode中国-leetCode:leetcode

    荷兰国旗问题DutchFlag 1. 按颜色进行排序 3 贪心思想 1. 分配饼干 2. 不重叠的区间个数3. 投Dart刺破气球 4. 根据身高和序号重组队列 5. 买卖股票最大的收益 6. 买卖股票的最大收益 II 7. 种植花朵 8. 判断是否为子...

    Ruby中的算法和数据结构:算法,数据结构和编程挑战的Ruby实现

    以及和的许多挑战的解决方案内容: 基于二分搜索的问题阵列旋转算法阵列旋转的块交换算法子数组问题(Kadane算法)改组数组在数组中查找固定点荷兰国旗问题数组中的多数元素 演算法暖身实作其他1. 〜 添加的新方法...

    AlgorithmPractice:数据结构与算法实践

    排序,比较和比较:LC 75(荷兰国旗问题),LC 88,LC 165,LC 179,LC 280,LC 436,LC 611,LC 881,LC 910,LC 937,LC 945,LC 948,LC 969(煎饼分类),LC 973,LC 976,LC 1029,LC 1169,LC 1196,LC 1288...

    leetcode变形词-ElementsOfProgrammingInterviews-Variants:Java编程面试的要素-已解决的变体

    荷兰国旗问题 :yellow_heart: 排序颜色 :yellow_heart: 排序列表 :yellow_heart: 摆动排序 :yellow_heart: 摆动排序 II DutchNationalFlagWithoutPivot, MauritiusNationalFlag, BooleanValuedKeysFlag, ...

    leetcode中国-leetcode-study:学习算法

    leetcode中国 leetcode-study 地址: 考虑维度 时间维度:是指执行当前算法所消耗的时间,我们...荷兰国旗问题,将包含012的数组,按012顺序排序输出 SortColors 贪心思想 给小孩分配饼干,最多分配多少个 AssignCook

    leetcodepdfpython-DSA_Tech_Drill:技术面试准备之旅-涵盖数据结构和算法、设计和行为以及资源

    荷兰国旗图案 辅助缓冲法 二分图 连接组件 基于括号的问题 下一个基于大元素的问题 基于位掩码的问题 库存问题模式 字符串比较、对齐和匹配 使用 256 整数数组解决字符串问题 二维数组的分层方法 在中间技术见面 ...

    leetcode中国-codePractice:代码实践

    --471行:荷兰国旗问题 --501行:快速排序和随机快速排序 --541行:堆排序,堆结构很重要 --611行:用数组结构实现大小固定的队列和栈 --813行:仅用队列实现栈结构 --884行:仅用栈实现队列结构 --938行:给定一个...

    leetcode中国-quiz:每周小测

    荷兰国旗问题 题目参考: 实现版本: 题解参考: 题目归档 Number(数字处理、金融相关) removeHexPrefix sanitizeHex String(字符串) padLeft List(数组) adjust swap 其他 less 算法 哈希表 groupAnagrams 排序 ...

    经典面试、笔试题

    目录IBM面试:几只狗生病腾讯面试题:给出上排数,写出下排数阿里巴巴面试题:男女比例淘宝笔试题:N个鸡蛋放到M个篮子中百度移动开发笔试题:荷兰国旗(三色球排序问题) IBM面试:几只狗生病 村子中有50个人,每人...

    LeetCode:leetcode练习

    LeetCode ...图样:贪婪 455分配Cookie(简单) 135糖果(硬) 移动零点(简单) 给定总和的最小子数组(简单)...荷兰国旗问题(中) 模式:二进制搜索 LinkedList周期(简单) LinkedList周期的开始(中等) 快乐号

    leetcode2-Grokking-the-Coding-Interview-Patterns-for-Coding-Questions:G

    荷兰国旗问题(中) 问题挑战 1 - 目标四倍和(中等) 问题挑战 2 - 比较包含退格的字符串(中等) 问题挑战 3 - 最小窗口排序(中等) 3. 模式:快慢指针 介绍 链表循环(简单) LinkedList 循环的开始(中) 快乐...

Global site tag (gtag.js) - Google Analytics