使用Python对波形中的数组进行排序

这篇具有很好参考价值的文章主要介绍了使用Python对波形中的数组进行排序。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

使用的方法

以下是用于完成此任务的各种方法&miinus;

  • 使用内置的 sort() 函数
  • 不使用内置函数

方法 1:使用内置的 sort() 函数

算法(步骤)

以下是执行所需任务要遵循的算法/步骤。−

  • 创建一个函数,通过接受输入数组和数组长度作为参数来对波形中的数组进行排序。
  • 使用 sort() 函数(按升序/降序对列表进行排序)按升序对输入数组进行排序。
  • 使用 for 循环遍历直到数组长度(步骤=2)
  • 使用“,”运算符交换相邻元素,即当前元素及其下一个元素。
  • 创建一个变量来存储输入数组。
  • 使用 len() 函数(返回对象中的项数)获取输入数组的长度。
  • 通过传递输入数组和数组长度作为参数来调用上面定义的 sortingInWaveform() 函数
  • 使用 for 循环遍历数组的所有元素
  • 打印数组的当前元素。

以下程序使用 python 内置 sort() 函数对波形中的输入数组进行排序 −

# creating a function to sort the array in waveform by accepting # the input array, array length as arguments def sortingInWaveform(inputArray, arrayLength):    # sorting the input array in ascending order using the sort() function    inputArray.sort()    # travsersing till the array length alternatively(step=2)    for k in range(0, arrayLength-1, 2):          # swapping the adjacent elements i.e, current and it's next          inputArray[k], inputArray[k+1] = inputArray[k+1], inputArray[k] # input array inputArray = [12, 45, 15, 4, 6, 70, 68, 3, 25] # getting the length of the input array arrayLength = len(inputArray) # printing the given array/list print("The Given list is:", inputArray) # calling the above defined sortingInWaveform() function by # passing input array, length of the array as arguments sortingInWaveform(inputArray, arrayLength) print("The Result Array after sorting in wave form is:") # traversing through all the elements of the array for k in range(0, arrayLength):    # printing the current element of the array/list       print(inputArray[k], end=" ")

复制

输出

在执行时,上述程序将生成以下输出 &miinus;

The Given list is: [12, 45, 15, 4, 6, 70, 68, 3, 25] The Result Array after sorting in wave form is: 4 3 12 6 25 15 68 45 70

复制

时间复杂度 − O(nLogn).

在这里,给定的数组是使用排序函数排序的,该函数通常具有 O(NlogN) 时间复杂度。

如果应用了 O(nLogn) 排序算法,如合并排序、堆排序等,则上述方法具有 O(nLogn) 时间复杂度。

方法 2:仅使用一个循环

算法(步骤)

以下是执行所需任务要遵循的算法/步骤。−

  • 使用 for 循环通过传递 0、数组长度和步长值作为参数来遍历所有偶数索引元素
  • 使用 if 条件语句检查当前偶数索引元素是否小于前一个索引元素。
  • 如果条件为 true,则交换元素。
  • 使用 if 条件语句检查当前偶数索引元素是否小于下一个元素。
  • 如果条件为 true,则交换元素。
  • 通过传递输入数组和数组长度作为参数来调用上面定义的 sortingInWaveform() 函数
  • 使用 for 循环遍历数组的元素。
  • 打印数组/列表的相应元素。

以下程序仅使用一个 for 循环且不带内置函数以波形对输入数组进行排序 -

# creating a function to sort the array in waveform by accepting # the input array, array length as arguments def sortingInWaveform(inputArray, arrayLength):    # traversing through all the even index elements    for p in range(0, arrayLength, 2):       # checking whether the current even index element       # is smaller than the previous       if (p > 0 and inputArray[p] < inputArray[p-1]):          # swapping the elements if the condition is true             inputArray[p], inputArray[p-1] = inputArray[p-1], inputArray[p]             # checking whether the current even index element             # is smaller than the next element       if (p < arrayLength-1 and inputArray[p] < inputArray[p+1]):          # swapping the elements if the condition is true             inputArray[p], inputArray[p+1] = inputArray[p+1], inputArray[p] # input array inputArray = [12, 45, 15, 4, 6, 70, 68, 3, 25] # getting the length of the input array arrayLength = len(inputArray) print("The Given list is:", inputArray) # calling the above defined sortingInWaveform() function by # passing input array, length of the array as arguments sortingInWaveform(inputArray, arrayLength) print("The Result Array after sorting in wave form is:") # traversing through all the elements of the array for k in range(0, arrayLength):    # printing the current element    print(inputArray[k], end=" ")

复制

输出

在执行时,上述程序将生成以下输出 -

The Given list is: [12, 45, 15, 4, 6, 70, 68, 3, 25] The Result Array after sorting in wave form is: 45 12 15 4 70 6 68 3 25

复制

时间复杂度 − O(n)。

在这里,我们没有使用排序函数;相反,我们只是使用 for 循环来迭代给定数组的元素,平均而言,该数组具有 O(N) 时间复杂度。文章来源地址https://www.toymoban.com/news/detail-470333.html

到了这里,关于使用Python对波形中的数组进行排序的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • JS数组对象——根据日期进行排序Date.parse(),按照时间进行升序或降序排序localeCompare()

    排序在项目中非常实用,出现频率极高,尤其是 后台管理系统 ,需要我们对大量的数据进行 展示、处理、操作 。一般都是 从后台获取到数组对象 ,然后 根据其中的一个属性对数据进行升序或者降序 的处理。从本期文章开始,将分别介绍常用的三种排序—— 根据日期排序

    2024年02月01日
    浏览(32)
  • 数组排序 sort() 方法 (映射对含有大小写的字符串进行排序)

    结论先行: sort() 方法: 用于对数组元素进行 排序 ,默认升序。如果指明了参数,那数组会按照 比较函数 的返回值进行排序。    sort() 方法比较两个值时,将值发送给比较函数,根据返回的(负、零、正)值对值进行排序。 举例,a 和 b 两个将要被比较的元素: 如果 a-

    2024年04月25日
    浏览(24)
  • C语言题目 - 调用qsort函数对数组进行排序

    如题 其实没什么难的,只要严格按照 qsort 函数的参数来填充即可,这里要用到 函数指针 。 qsort 函数的原型如下: void qsort(void *base, size_t nitems, size_t size, int (*compar)(const void *, const void *)); 参数说明: base :指向需要排序的数组的指针,数组中每个元素的大小应为 size 字节。

    2024年02月11日
    浏览(33)
  • 【c语言】对结构体数组按照某项规则进行排序

            这是基于qsort()函数进行的简单排序。(附带其他类型的数组使用qsort()进行的排序) 目录 一、qsort()函数 二、compare()函数 1.结构体数组 1)升序实现 2)降序实现 2.整型数组 为什么不直接返回 ab(a )? 如果就是想用 ab(a )返回?  1)升序实现 2)降序实现 3.浮点

    2024年02月03日
    浏览(36)
  • 在PHP8中对数组进行排序-PHP8知识详解

    在php8中,提供了丰富的排序函数,可以对数组进行排序操作。常见的排序函数如下几个:sort() 函数、rsort() 函数、asort() 函数、arsort() 函数、ksort() 函数、krsort() 函数、natsort()函数和natcascsort()函数。 1、sort() 函数:用于对数组元素从低到高进行排序,不保持索引关系。 2、r

    2024年02月07日
    浏览(42)
  • Python中的数组拼接函数——np.concatenate使用详解

    Python中的数组拼接函数——np.concatenate使用详解 在Python的numpy库中,提供了一个用于数组拼接的函数——np.concatenate。该函数可以将多个数组沿一个指定的轴方向进行拼接,生成一个新的数组。其中,被拼接的数组可以是1维或n维数组。 拼接数组的实现需要指定拼接的方式和拼

    2024年02月11日
    浏览(33)
  • LeetCode 26.删除排序数组中的重复项

    给你一个 非严格递增排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。然后返回 nums 中唯一元素的个数。 考虑 nums 的唯一元素的数量为 k ,你需要做以下事情确保你的题解可以被通过

    2024年02月03日
    浏览(36)
  • 学习如何独立的使用Modelsim进行仿真验证?——编写verilog文件并查看仿真波形

    本篇记录如何独立的使用Modelsim进行仿真,便于之后查看。 Modelsim独立仿真的步骤: 创建工作文件夹——编译设计文件——导入及运行仿真——调试结果 具体的: 1、新建一个工程 指定工程名称、路径和默认库名称。一般情况下,设定Default Library Name默认库名称为work。 指定的

    2023年04月08日
    浏览(32)
  • 154. 寻找旋转排序数组中的最小值 II

    已知一个长度为  n  的数组,预先按照升序排列,经由  1  到  n  次  旋转  后,得到输入数组。例如,原数组  nums = [0,1,4,4,5,6,7]  在变化后可能得到: 若旋转  4  次,则可以得到  [4,5,6,7,0,1,4] 若旋转  7  次,则可以得到  [0,1,4,4,5,6,7] 注意,数组  [a[0], a[1], a[2], ...,

    2024年02月15日
    浏览(26)
  • C语言实现冒泡排序排列数组中的元素!

     按照 图中的方法 来编写程序: 1、 void* base,    //base中存放的是待排序数据中第一个对象的地址 2、 size_t num,    // 待排序数据元素的个数 3、 size_t width,    // 待排序数据中一个元素的大小,单位是字节 4、i nt(__cdecl* compare)(const void* elem1, const void* elem2) // 函数指针  用来比

    2024年02月15日
    浏览(27)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包