Python冒泡排序注意要点实例详解

来源:本网整理

采用冒泡法降序排列10个输入数据的程序如下:先定义一个长度为10的数组a[],10个数据由键盘输入,从第一个数开始,两两一组进行判断,因为要求是降序排列,因此将两个数中小的向后移动,每个数要比较的次数为9-数的下标。比较完成后将数组依次输出。输入10个数据,程序运行结果:扩展资料:冒泡排序算法的原理如下:1、比较相邻的元素。如果第一个比第二个大,就交换他们两个。2、对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。3、针对所有的元素重复以上的步骤,除了最后一个。4、持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较www.zgxue.com防采集请勿采集本网。

s">

Python冒泡排序注意要点实例详解

作者:航行 字体:[增加 减小] 类型:转载 时间:2016-09-09 我要评论 本文给大家介绍了python冒泡排序知识,涉及到冒泡排序主要的细节问题,本文通过实例代码给大家讲解,介绍的非常详细,具有参考借鉴价值,感兴趣的朋友一起看看吧 ">

冒泡排序注意三点:

代码如下(对10个整数进行升序排序): include int main() { int i,j,t,a[10]={5,4,8,3,6,9,7,222,64,88};排序 for(i=1;i;i+)/外循环控制排序趟数,n个数排n-1趟 { for(j=0;j;j+)/内循环每趟

1. 第一层循环可不用循环所有元素。

#include int main() { int a[10]={1,2,3,4,5,6,7,8,9,10};int i,j,t;for(i=1;i;i+) for(j=0;j;j+) { if(a[j][j+1]) { t=a[j];a[j]=a[j+1];a[j+1]=t;} } printf(\"排序后抄的结果知为道:\");for(i=

2.两层循环变量与第一层的循环变量相关联。

类(class)初始化之后会得到实例(instance)。然而Python的哲学是\"Explicit is better than implicit.\",显示要比隐示好,因此Python类的方法需要一个self参数代表实例是符合逻辑的。

3.第二层循环,最终必须循环集合内所有元素。

既然 谈到了工作这个问题,那得先给自己定个位 自己学的是python 开发的哪个方面(不会面面都精通吧),是web 开发 还是桌面应用开发等等,要找准方向 我的建议是 首先 学好python的基础 例如数据结构啊

示例代码一:

摆设床得几个讲究先介绍一下:1、床头要有靠山,意思是床头要靠在墙上,这面墙不宜有窗有门 2、开门直冲床也是不好的,睡觉的人不安稳 3、最好在床上就能看到开门进来的人,不要背向门 4、床头

1.第一层循环,只循环n-1个元素。

2.当第一层循环变量为n-1时,第二层循环所有元素。

s = [3, 4, 1, 6, 2, 9, 7, 0, 8, 5]# bubble_sortfor i in range(0, len(s) - 1):for j in range(i + 1, 0, -1):if s[j] < s[j - 1]:s[j], s[j - 1] = s[j - 1], s[j]for m in range(0, len(s)):print(s[m])

示例代码二:

1.第一层循环所有元素。

2.第二层也循环所有元素。

s = [3, 4, 1, 6, 2, 9, 7, 0, 8, 5]for i in range(0, len(s)):for j in range(i, 0, -1):if s[j] < s[j - 1]:s[j], s[j - 1] = s[j - 1], s[j]for m in range(0, len(s)):print(s[m])

以上所述是小编给大家介绍的python冒泡排序算法注意要点,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对突袭网网站的支持!

选择排序:选择法排序是一种简单的容易实现的对数据排序的算法。以整形数组元素为例,有数组A[10](以C语言为例描述),即A[0],A[1],…,A[8],A[9](假设其元素均互不相同)。要求对其元素排序使之递增有序。首先以一个元素为基准,从一个方向开始扫描,比如从左至右e69da5e6ba90e799bee5baa6e79fa5e9819331333238653961扫描,以A[0]为基准。接下来从A[0],…,A[9]中找出最小的元素,将其与A[0]交换。然后将基准位置右移一位,重复上面的动作,比如,以A[1]为基准,找出A[1]~A[9]中最小的,将其与A[1]交换。一直进行到基准位置移到数组最后一个元素时排序结束(此时基准左边所有元素均递增有序,而基准为最后一个元素,故完成排序)。以下为一个用C描述的函数实现上述排序:void sort(int array[],int n){/n 为数组元素个数int i,j,k,temp;i 为基准位置,j 为当前被扫描元素位置,k 用于暂存出现的较小的元素的位置for(i=0;i;i+){k=i;初始化为基准位置for(j=i+1;j;j+){if(array[j][k])k=j;k 始终指示出现的较小的元素的位置{ temp=array[k];array[k]=array;rray=temp;将此趟扫描得到的最小元素与基准互换位置}}/for}}其实现相对简单,效率比较低,时间复杂度为O(n2)(n 的平方),为就地排序。冒泡排序法:基本思路:对尚未排序的各元素从头到尾依次比较相邻的两个元素是否逆序(与欲排顺序相反),若逆序就交换这两元素,经过第一轮比较排序后便可把最大(或最小)的元素排好,然后再用同样的方法把剩下的元素逐个进行比较,就得到了你所要的顺序。可以看出如果有 n 个元素,那么一共要进行 n-1 轮比较,第 i 轮要进行 j=n-i 次比较。(如:有5个元素,则要进行5-1轮比较。第3轮则要进行5-3次比较)下面以C语言为例子给大家一个明确的表示:includevoid main(){int a[10];int i,j,t;printf("输入10个整数:\\n");for(i=0;i;i+)scanf("%d",&a[i]);依次输入10个整数for(j=0;j;j+)/进行9轮排序 即n-1次{for(i=0;i;i+)/每轮进行n-1-j 次比较,最多n-1-j 次交换if(a[i]>a[i+1]){t=a[i];a[i]=a[i+1];小的沉底,大的上浮a[i+1]=t;}}printf("排序结果:");for(i=0;i;i+)/依次输出排序结果printf("%d\\t",a[i]);printf("\\n");}PASCAL为例子procedure Bubble_Sort(var L:List);vari,j:position;beginfor i:=First(L)to Last(L)-1 dofor j:=First(L)to Last(L)-i doif L[j]>L[j+1]then 4 swap(L[j],L[j+1]);交换L[j]和L[j+1]end;下面使用c++语言编写includevoid main(){int a[n],i,j,temp;cout请输入数字:";for(i=0;i;i+)cin>>a;依次输入n个整数for(i=0;i;i+){for(j=i+1;j;j+)if(a[j])/利用临时变量temp交换顺序{ temp=a[j];a[j]=a;a=temp;}cout;依次输出结果}C语言中的排序方法选择方法是首先从要选择的数中选择最大(或最小)的数,将它放在第一个位置,然后从剩下的数中选择最大(或最小)的数放在第二个位置,直到最后从剩下的两个数中选择最大(或最小)的数放在倒数第二个位置,剩下的一个数放在最后位置,完成排序内容来自www.zgxue.com请勿采集。

免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
Copyright © 2017 www.zgxue.com All Rights Reserved