使用的方法
以下是用于完成此任务的各种方法&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)。文章来源:https://www.toymoban.com/news/detail-470333.html
在这里,我们没有使用排序函数;相反,我们只是使用 for 循环来迭代给定数组的元素,平均而言,该数组具有 O(N) 时间复杂度。文章来源地址https://www.toymoban.com/news/detail-470333.html
到了这里,关于使用Python对波形中的数组进行排序的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!