冒泡排序(C、Python)

2021-03-19 09:26

阅读:493

标签:数字   scan   lse   位置   %s   冒泡   ble   bre   solution   

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

#字符串冒泡排序
void Bubble(int s[], int len){
    int i,j;
    for(i=0;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){
        printf("%d",a[i]);
    }
    printf("\n");
    return 0;
}

字符串冒泡排序

#include
#include

#字符串冒泡排序
void Bubble(int s[], int len){
    int i,j;
    for(i=0;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\n",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]]:
                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.

冒泡排序(C、Python)

标签:数字   scan   lse   位置   %s   冒泡   ble   bre   solution   

原文地址:https://www.cnblogs.com/gangpei/p/13947778.html


评论


亲,登录后才可以留言!