数据结构面试常见问题之- Sort with Swap(0,*)

😀前言
在数据结构面试中,排序算法是考察重点之一。传统的排序算法,例如冒泡排序、快速排序等,都依赖于元素之间的比较和交换操作。然而,在某些情况下,我们可能只允许使用特定的交换操作,例如只能与0交换。在这种情况下,传统的排序算法就不再适用

🏠个人主页:尘觉主页

数据结构面试常见问题之- Sort with Swap(0,*)

习题-SWS.1 环的分类

题意理解

  1. 给定N个数字的排列,如何仅利用与0交换达到排序目的?
    0在里面扮演了空位的问题
    在这里插入图片描述

环的分类

环分3种

  1. 只有1个元素:不需要交换
  2. 环里no个元素,包括0:需要no-1次交换
  3. i个环里有ni;个元素,不包括0: 先把0换到环里,再进行(ni+1)-1次交换 – 一共是n;+1次交换

若N个元素的序列中包含S个单元环、K个多元环,则交换次数为:

n 0 − 1 + ∑ i = 1 K − 1 ( n 1 + 1 ) n_0 - 1 + \sum_{i=1}^{K-1} (n_1 + 1) n01+i=1K1(n1+1)
∑ i = 0 k − 1 n 1 + K − 2 = N − S + K − 2 \sum_{i=0}^{k-1} n_1 + K - 2 = N - S + K - 2 i=0k1n1+K2=NS+K2

习题-SWS.2 算法示例

在这里插入图片描述
对于不包含0的swap操作次数为n+1,包含0则是n-1次
在这里插入图片描述

😄总结

本文介绍了一种基于环的分类方法,用于解决仅允许与0交换的排序问题。该方法将元素划分为不同的环,并根据环的类型计算所需的交换次数。最后,通过示例演示了该方法的应用。
祝福您面试顺利

😁热门专栏推荐
想学习vue的可以看看这个

java基础合集

数据库合集

redis合集

nginx合集

linux合集

手写机制

微服务组件

spring_尘觉

springMVC

mybits

等等等还有许多优秀的合集在主页等着大家的光顾感谢大家的支持

🤔欢迎大家加入我的社区 尘觉社区

文章到这里就结束了,如果有什么疑问的地方请指出,诸佬们一起来评论区一起讨论😁
希望能和诸佬们一起努力,今后我们一起观看感谢您的阅读🍻
如果帮助到您不妨3连支持一下,创造不易您们的支持是我的动力🤞

相关推荐

  1. 数据结构面试常见问题

    2024-03-22 03:28:02       19 阅读
  2. 数据结构面试常见问题

    2024-03-22 03:28:02       18 阅读
  3. 2024数据结构面试常见问题

    2024-03-22 03:28:02       18 阅读
  4. C语言数据结构面试常见问题及答案

    2024-03-22 03:28:02       18 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-22 03:28:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-22 03:28:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-22 03:28:02       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-22 03:28:02       20 阅读

热门阅读

  1. 【leetcode】动态规划专题

    2024-03-22 03:28:02       17 阅读
  2. 使用Tesseract识别中文 并提高精度

    2024-03-22 03:28:02       19 阅读
  3. React面试题

    2024-03-22 03:28:02       16 阅读
  4. CCF-CSP认证考试 202303-4 星际网络II 100分题解

    2024-03-22 03:28:02       21 阅读
  5. AOP+MySQL实现一个简历的日志收集工具

    2024-03-22 03:28:02       18 阅读
  6. C++ 小玉家的电费

    2024-03-22 03:28:02       17 阅读
  7. 【Python-Pandas】to_csv用法示例

    2024-03-22 03:28:02       19 阅读
  8. 【mybatis】MetaObject解读

    2024-03-22 03:28:02       20 阅读
  9. “横扫”时代的《大数据》

    2024-03-22 03:28:02       21 阅读
  10. 单目深度估计:从理论到实践

    2024-03-22 03:28:02       15 阅读
  11. python离线安装依赖库 依赖库版本

    2024-03-22 03:28:02       21 阅读
  12. element ui实践bug

    2024-03-22 03:28:02       20 阅读