冒泡排序结果不对 想问问怎么改


#include<stdio.h>
#include<stdlib.h> 
void bubblesort(int a[],int len){
    int k,j;
    int temp;
    for(j=0;j<len-1;j++){
        for(k=0;k<len-1-j;k++){
            if(a[j]>a[j+1]){
                temp=a[j];
                a[j]=a[j+1];
                a[j+1]=temp;
            }
        }
    }    
}
int main(){
    int i;
    int a[]={5,3,2,1,4,6,8,7,9};
    int len=sizeof(a)/sizeof(a[0]);
    bubblesort(a,len);
    for(i=0;i<len;i++){
        printf("%d",a[i]);
    }
    return 0;
}

j改成k


#include <stdio.h>
#include <stdlib.h>
void bubblesort(int a[], int len)
{
    int k, j;
    int temp;
    for (j = 0; j < len - 1; j++)
    {
        for (k = 0; k < len - 1 - j; k++)
        {
            if (a[k] > a[k + 1])
            {
                temp = a[k];
                a[k] = a[k + 1];
                a[k + 1] = temp;
            }
        }
    }
}
int main()
{
    int i;
    int a[] = {5, 3, 2, 1, 4, 6, 8, 7, 9};
    int len = sizeof(a) / sizeof(a[0]);
    bubblesort(a, len);
    for (i = 0; i < len; i++)
    {
        printf("%d", a[i]);
    }
    return 0;
}

img

img

这里不对,应该用k你用的j



#include<stdio.h>
#include<stdlib.h> 
void bubblesort(int a[], int len) {
    int k, j;
    int temp;
    for (j = 0; j < len - 1; j++) {
        for (k = 0; k < len - 1 - j; k++) {
            if (a[k] > a[k + 1]) {
                temp = a[k];
                a[k] = a[k + 1];
                a[k + 1] = temp;
            }
        }
    }
}
int main() {
    int i;
    int a[] = { 5,3,2,1,4,6,8,7,9 };
    int len = sizeof(a) / sizeof(a[0]);
    bubblesort(a, len);
    for (i = 0; i < len; i++) {
        printf("%d", a[i]);
    }
    return 0;
}