Python 对波形图中的数组进行排序
在这篇文章中,我们将学习一个Python程序来对波形中的数组进行排序。
假设我们已经采取了一个未经排序的输入数组。现在我们将在波形中对输入数组进行排序。一个数组’arr[0…n-1]’在波形中被排序,如果arr[0] >= arr[1] <= arr[2] >= arr[3] <= arr[4] >= …..
使用的方法
以下是用于完成这一任务的各种方法&miinus
- 使用内置sort()函数
-
不使用内建函数
方法1:使用内置sort()函数
算法(步骤)
以下是执行所需任务时需要遵循的算法/步骤。-
- 创建一个函数,通过接受输入数组和数组长度作为参数,对波形数组进行排序。
-
使用 sort() 函数(按升序/降序对列表进行排序)对输入数组进行升序排序。
-
使用 for循环 遍历到数组的长度(step=2)。
-
使用’,’操作符交换相邻的元素,即当前元素和下一个元素。
-
创建一个变量来存储输入的数组。
-
使用 len() 函数(返回对象中的项目数)来获得输入数组的长度。
-
通过传递输入数组和数组的长度作为参数,调用上述定义的 sortingInWaveform() 函数。
-
使用 for循环 遍历一个数组的所有元素
-
打印数组的当前元素。
例子
下面的程序使用python内置的sort()函数对输入数组进行波形排序。
输出
在执行时,上述程序将产生以下输出&miinus
时间复杂度 --O(nLogn)。
这里,给定的数组是用排序函数进行排序的,其时间复杂度通常为O(NlogN)。
如果采用O(nLogn)排序算法,如 合并排序、堆排序 等,上述方法的时间复杂性为O(nLogn)。
方法2:只使用一个循环
算法(步骤)
以下是执行所需任务时需要遵循的算法/步骤。-
- 使用 for循环 ,通过传递0、数组长度和步骤值作为参数来遍历所有的偶数索引元素
-
使用 if条件 语句检查当前的偶数索引元素是否比前一个小。
-
如果条件为 真 ,则交换这些元素。
-
使用 if条件 语句检查当前偶数索引元素是否比下一个元素小。
-
如果条件为 真 ,则交换这些元素。
-
通过传递输入数组和数组的长度作为参数,调用上述定义的 sortingInWaveform() 函数。
-
使用 for循环, 遍历数组中的元素。
-
打印数组/列表中的相应元素。
例子
下面的程序对输入的数组进行波形排序,只使用一个for循环,没有使用内置函数—-。
输出
在执行时,上述程序将产生以下输出:
时间复杂度 --O(n)。
在这里,我们没有使用排序函数;相反,我们只是使用for循环来迭代给定数组的元素,平均而言,其时间复杂度为O(N)。
总结
在这篇文章中,我们学习了如何使用两种不同的方法对给定的波形阵列进行排序。一个新的逻辑,比第一种方式的时间复杂度降低了O(log N),这就是我们用来降低时间复杂度的方法。在许多情况下,这类算法有助于降低时间复杂度并进行有效的解决。