冒泡排序(CPython)
Posted Gangpei
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了冒泡排序(CPython)相关的知识,希望对你有一定的参考价值。
BEGIN:
1、冒泡排序思想(升序排序):
如 a=[9,6,8,7,5,3]
i=0
第一趟排序:3与5比较,3和5交换位置,a=[9,6,8,7,3,5]; j=len-1
3与7比较,3和7交换位置,a=[9,6,8,3,7,5]; j=len-2
3与8比较,3和8交换位置,a=[9,6,3,8,7,5]; j=len-3
3与6比较,3和6交换位置,a=[9,3,6,8,7,5]; j=len-4
3与9比较,3和9交换位置,a=[3,9,6,8,7,5]; j=len-5=i
第一趟排序结束,此时3在正确的位置上,a=[3,9,6,8,7,5]
i=1
第二趟排序:5与7比较,5和7交换位置,a=[3,9,6,8,5,7]; j=len-1
5与8比较,5和8交换位置,a=[3,9,6,5,8,7]; j=len-2
5与6比较,5和6交换位置,a=[3,9,5,6,8,7]; j=len-3
5与9比较,5和9交换位置,a=[3,5,9,6,8,7]; j=len-4=i
第二趟排序结束,此时3和5在正确的位置上,a=[3,5,9,6,8,7]
i=2
第三趟排序:7与8比较,7和8交换位置,a=[3,5,9,6,7,8]; j=len-1
7与6比较,不用交换位置,a=[3,5,9,6,7,8]; j=len-2
6与9比较,6和9交换位置,a=[3,5,6,9,7,8]; j=len-3=i
第三趟排序结束,此时3、5、6在正确的位置上,a=[3,5,6,9,7,8]
i=3
第四趟排序:8与7比较,不用交换位置,a=[3,5,6,9,7,8]; j=len-1
7与9比较,7和9交换位置,a=[3,5,6,7,9,8]; j=len-2=i
第四趟排序结束,此时3、5、6、7在正确的位置上,a=[3,5,6,7,9,8]
i=4
第五趟排序:8与9比较,8和9交换位置,a=[3,5,6,7,8,9]; j=len-1=i
第五趟排序结束,此时所有数字都在正确的位置上,a=[3,5,6,7,9,8]
冒泡排序结束。
代码:
C语言:
数字冒泡排序
#include<stdio.h>
#字符串冒泡排序
void Bubble(int s[], int len){
int i,j;
for(i=0;i<len-1;i++){
int f=1;
for(j=len-1;j>i;j--){
if(s[j-1]>s[j]){
char t=s[j];
s[j]=s[j-1];
s[j-1]=t;
}
}
if(f){
break;
}
}
}
int main(){
int a[]={9,6,8,7,5,3};
len = sizeof(a)/sizeof(a[0]);
Bubble(a,len);
for(int i=0;i<len;i++){
printf("%d",a[i]);
}
printf("
");
return 0;
}
字符串冒泡排序
#include<stdio.h>
#include<string.h>
#字符串冒泡排序
void Bubble(int s[], int len){
int i,j;
for(i=0;i<len-1;i++){
int f=1;
for(j=len-1;j>i;j--){
if(s[j-1]>s[j]){
char t=s[j];
s[j]=s[j-1];
s[j-1]=t;
}
}
if(f){
break;
}
}
}
int main(){
char s[1024];
scanf("%s",s);
len = strlen(s);
Bubble(s,len);
printf("%s
",s);
return 0;
}
Python:
数字冒泡排序:
def Bubble(a):
n = len(a)
for i in range(n-1):
f=True
for j in range(n-1,i,-1):
if a[j]<a[j-1]:
t = a[j]
a[j]=a[j-1]
a[j-1]=t
f=False
if f:break
return a
def solution():
a=[9,6,8,7,5,3]
a=Bubble(a)
for k in a:
print(k,end=(‘ ‘))
print()
END.
以上是关于冒泡排序(CPython)的主要内容,如果未能解决你的问题,请参考以下文章