码迷,mamicode.com
首页 > 编程语言 > 详细

冒泡排序(C、Python)

时间:2020-11-10 10:30:08      阅读:7      评论:0      收藏:0      [点我收藏+]

标签:数字   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<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("\n");
    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\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]<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.

冒泡排序(C、Python)

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

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!