#include <stdio.h>
void SortBubble(int array[], int n, int asc);
int main(void){
    int array[] = {7,1,6,9,3};
    int arraySize = (int)(sizeof(array)/sizeof(array[0]));
    SortBubble(array, arraySize, 1);
    SortBubble(array, arraySize, 0);
    return 0;
}
void SortBubble(int array[], int n, int asc){
    int tmp;
    for(int i = 0; i < n - 1; i++){
        for(int j = 0; j < n - 1; j++){
            if(asc) {
                //aufsteigende Reihenfolge
                if(array[j+1] < array[j]){
                    //j und j+Tauschen Sie den ersten Wert aus
                    tmp = array[j];
                    array[j] = array[j+1];
                    array[j+1] = tmp;
                }
            } else {
                //absteigende Reihenfolge
                if(array[j+1] > array[j]){
                    tmp = array[j];
                    array[j] = array[j+1];
                    array[j+1] = tmp;
                }
            }
        }
    }
    asc 
        ? printf("aufsteigende Reihenfolge:")
        : printf("absteigende Reihenfolge:");
    for(int i = 0; i < n; i++){
        printf("%d,", array[i]);
    } 
    printf("\n");
}
Numerischer Fluss
Wenn i = 0, wird die Schleife von j ... 1,7,6,9,3 1,6,7,9,3 1,6,7,9,3 1,6,7,3,9
Wenn i = 1, wenn Sie die Schleife von j ... 1,6,7,3,9 1,6,7,3,9 1,6,3,7,9 1,6,3,7,9
. . .
Ausgabe
Aufsteigende Reihenfolge: 1,3,6,7,9,
Absteigende Reihenfolge: 9,7,6,3,1,
Referenz C-Sprachblasensortierung, an die Sie sich bei Schmerzen erinnern sollten
Recommended Posts