冒泡排序(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)的主要内容,如果未能解决你的问题,请参考以下文章

C语言冒泡排序法代码

请问这个冒泡排序代码,每一行都是啥意思呀,谢谢

java冒泡排序法代码

python代码实现鸡尾酒排序(双向冒泡排序)

冒泡排序python代码

视频+图文+动画详解冒泡排序