‘壹’ python如何请用户从控制台随意输入一个正整数, 然后找到其中的最大位数
随意输入一组正整数,然后使用冒泡排序
冒泡排序
numbers = [34,12,8,21,55] #定义一个元素乱序的整数数组
for i in range(len(numbers)): #逐个遍历序列中的元素
for j in range(i): #再次间接遍历numbers中的元素.不过是比原序列都少一位
if numbers[j] > numbers[j+1]: #如果当前索引的元素大于下一个序列中的元素
numbers[j],numbers[j+1] = numbers[j+1],numbers[j] #那就互换位置,大的元素往后靠
print numbers #打印出此次对比排序两个元素后的序列结果
冒泡排序运行的结果如下:
[34, 12, 8, 21, 55]
[12, 34, 8, 21, 55]
[12, 8, 34, 21, 55]
[8, 12, 21, 34, 55]
[8, 12, 21, 34, 55]
‘贰’ 编写一个函数,对10个整数按降序排序。在主函数输入10个数,调用该函数,输出排序后的结果。.
代码如下:
一、头文件:
#include<stdio.h>
#defineN10
二、输入函数,获取输入值:
voidsort(inta[],intn){inti,j;inttemp=0;for(i=0;i<n-1;i++){for(j=0;j<n-1-i;j++){if(a[j]<a[j+1]){temp=a[j];a[j]=a[j+1];a[j+1]=temp;}}}
}
三、选择排序函数:
voidselect_sort(int*a,intn){inti,j;inttemp,max;for(i=0;i<n-1;i++){max=i;for(j=i+1;j<n;j++)拆敏扒if(a[max]<a[j])拿陵max=j;if(max!=i){temp=a[max];a[max]=a[i];a[i]=temp;}}}
三、主函数,执行。
intmain(void){inta[N],i;for(i=0;i<N;i++){scanf("%d",&a[i]);}//sort(a,N);select_sort(a,N);for(i=0;i<N;i++){printf("%d,",a[i]);}putchar(10);旅昌return0;}
(2)python任意整数冒泡降序扩展阅读:
C语言排序的3种方法:
1、冒泡法:
思想:每次相邻两个数比较,若升序,则将大的数放到后面,一次循环过后,就会将最大的数放在最后。
2、选择排序:
从第一个数开始,每次和后面剩余的数进行比较,若升序,则如果后边的数比当前数字小,进行交换,和后面的所有的数比较、交换后,就会将当前的最小值放在当前的位置。
3、插入排序:
用扑克的方法解释,首先抽到第一张牌,将它放在第一位,排序是从第二次抽牌开始,第二次抽起一张牌3,它比9小,所以将9向后移一。位然后把3放在9原来的位置。再次抽牌2,发现它应该再3的前面,所以将3和9向后移,把2放到3原来的位置... ... 以此类推的思维。
‘叁’ python写冒泡排序
冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。
它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。
这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”。
中文名
冒泡排序
外文名
Bubble Sort
所属学科
计算机科学
时间复杂度
O(n2)
算法稳定性
稳定排序算法
快速
导航
算法分析算法描述优化算法比较
算法原理
冒泡排序算法的原理如下:[1]
比较相邻的元素。如果第一个比第二个大,就交换他们两个。[1]
对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。[1]
针对所有的元素重复以上的步骤,除了最后一个。[1]
持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
‘肆’ 用Python实现十大经典排序算法-插入、选择、快速、冒泡、归并、希尔、插入、桶、基数、计数
本文采用图文方式深入讲解Python十大经典排序算法,包括:插入排序、选择排序、快速排序、冒泡排序、归并排序、希尔排序、插入排序、桶排序、基数排序、计数排序。想要深入学习排序算法的朋友们,赶紧继续往下阅读吧!如果你觉得内容不错,别忘了推荐给你的朋友哦。
在介绍插入排序时,首先明确其思路和代码实现。插入排序算法的平均时间复杂度为O(n^2)。
接着,我们深入探讨希尔排序。希尔排序是插入排序的进阶版本,通过分组和插排来降低时间复杂度。通常,希尔排序的时间复杂度小于O(n^2),但在最坏情况下可能超过这个值。使用不同的增量策略,如海巴德增量或塞基维克增量,可以进一步优化时间复杂度。
选择排序部分,通过图示和代码展示其工作原理。选择排序的平均时间复杂度同样为O(n^2)。
堆排序部分,我们首先介绍堆的概念,包括最大堆和最小堆。堆排序利用堆的特性,每次取出堆顶元素并重新调整为最大堆,实现排序。堆排序的平均时间复杂度为O(nlogn)。
冒泡排序通过图示和代码演示,其时间复杂度为O(n^2)。
快速排序采用分治策略,通过图示和代码展示其详细过程,时间复杂度为O(nlogn)。
归并排序同样利用分治策略,通过图示和代码详细说明,其时间复杂度也为O(nlogn)。
计数排序部分,通过图示和代码展现其排序过程,时间复杂度为O(n)。
接着是桶排序,利用桶将元素按照值域进行分组排序,时间复杂度为O(n^2)。
最后,基数排序通过图示和代码展示其排序方法,时间复杂度为O(d*2*n),其中d为数值的位数。
感谢热心好友原味吐司的投稿,内容精彩,点赞支持!更多关于Python、深度学习和计算机编程的精彩内容,欢迎关注微信公众号:码农的后花园。希望本文能够帮助大家深入理解Python中的排序算法。
‘伍’ python怎么降序排列
最为简单的方法是利用表理解,生成一个新的字典 必须要保证键值是一一对应的 d = {'one':1, 'two':2, 'three':3, 'four':4}di = {v:k for k,v in d.items()}di。
import pandas as pd。
s=pd.Series(range(10))。
s.sort_values(ascending=False)。
算法稳定性
冒泡排序就是把小的元素往前调或者把大的元素往后调。比较是相邻的两个元素比较,交换也发生在这两个元素之间。所以,如果两个元素相等,是不会再交换的;如果两个相等的元素没有相邻,那么即使通过前面的两两交换把两个相邻起来,这时候也不会交换,所以相同元素的前后顺序并没有改变,所以冒泡排序是一种稳定排序算法。