Bubbelsorteringsalgoritm i C, Java och Python

Senaste uppdateringen: 30 November 2025
Författare: TecnoDigital
  • En enkel och stabil algoritm som sorterar genom att jämföra och byta ut intilliggande element, perfekt för att lära sig grunderna.
  • Dess komplexitet är O(n^2), så den är ineffektiv på stora mängder och utför många onödiga jämförelser.
  • Dess implementering i C, Java och Python visades; effektivare alternativ som quicksort och mergesort finns för större datamängder.
Bubbelsorteringsalgoritm

Bubbelsorteringsalgoritm är en av de enklaste och mest grundläggande algoritmerna som används för att sortera element i en lista. Dess enkelhet gör det till ett utmärkt val för att förstå de grundläggande koncepten för sorteringsalgoritmer. Denna algoritm används ofta i applikationer och program där antalet element som ska sorteras är litet.

I den här artikeln kommer vi att fokusera på att implementera bubbelsorteringsalgoritmen i två populära programmeringsspråk: C och Java. Vi kommer att utforska de steg som krävs för att implementera denna algoritm i vart och ett av dessa språk, analysera källkoden och ge detaljerade förklaringar.

Bubbelsorteringsalgoritm i C och Java

Bubbelsorteringsalgoritmen fungerar, som namnet antyder, genom att jämföra par av intilliggande element i en lista och utföra byten om de är i fel ordning. Denna process upprepas tills listan är helt sorterad.

Hur fungerar bubblesorteringsalgoritmen i C och Java?

Bubbelsorteringsalgoritmen följer en enkel men effektiv metod för att sortera element. Algoritmens allmänna funktion visas nedan:

  1. Vi börjar med en oordnad lista med artiklar.
  2. Vi itererar genom listan och jämför varje par av intilliggande element.
  3. Om elementen är i fel ordning byter vi dem.
  4. Vi fortsätter att iterera över listan tills den är helt sorterad.
  5. Iterationsprocessen upprepas så många gånger som behövs tills inga fler byten görs i ett helt pass.

Implementering av bubbelsorteringsalgoritm i C

Nedan presenterar vi implementeringen av bubbelsorteringsalgoritmen i C-språket :

#include <stdio.h>

void bubbleSort(int array[], int size) {
    for (int i = 0; i < size - 1; i++) {
        for (int j = 0; j < size - i - 1; j++) {
            if (array[j] > array[j + 1]) {
                int temp = array[j];
                array[j] = array[j + 1];
                array[j + 1] = temp;
            }
        }
    }
}

int main() {
    int array[] = {64, 34, 25, 12, 22, 11, 90};
    int size = sizeof(array) / sizeof(array[0]);
    bubbleSort(array, size);
    printf("Array ordenado: ");
    for (int i = 0; i < size; i++) {
        printf("%d ", array[i]);
    }
    return 0;
}

I denna bubbelalgoritmkod har vi definierat en funktion som kallas bubbleSort som tar en array och dess storlek som parametrar. Funktionen utför bubbelsorteringsalgoritmen med hjälp av två slingor for. Den första slingan for itererar över elementen i arrayen och den andra slingan for göra nödvändiga jämförelser och utbyten.

  Parametrar för artificiell intelligens och hur de formar modeller

Slutligen, i funktionen main, har vi skapat en exempelmatris och beräknat dess storlek. Då kallar vi funktionen bubbleSort skickar arrayen och dess storlek som argument. Slutligen skriver vi ut den sorterade arrayen på skärmen.

Implementering av bubbelsorteringsalgoritm i Java

Nedan presenterar vi implementeringen av bubbelsorteringsalgoritmen i Java-språket:

import java.util.Arrays;

public class BubbleSort {
    public static void bubbleSort(int[] array) {
        int size = array.length;
        for (int i = 0; i < size - 1; i++) {
            for (int j = 0; j < size - i - 1; j++) {
                if (array[j] > array[j + 1]) {
                    int temp = array[j];
                    array[j] = array[j + 1];
                    array[j + 1] = temp;
                }
            }
        }
    }

    public static void main(String[] args) {
        int[] array = {64, 34, 25, 12, 22, 11, 90};
        bubbleSort(array);
        System.out.println("Array ordenado: " + Arrays.toString(array));
    }
}

I den här koden har vi definierat en klass som heter BubbleSort. Inuti den här klassen har vi deklarerat en statisk metod som kallas bubbleSort som tar en array som en parameter. Metoden bubbleSort utför bubbelsorteringsalgoritmen med hjälp av två loopar for, precis som i C-implementeringen.

i metoden main, har vi skapat en exempelmatris och kallat metoden bubbleSort passera arrayen som ett argument. Slutligen använder vi Arrays.toString(array) för att skriva ut den sorterade arrayen till konsolen.

Implementering av bubbelsorteringsalgoritmen i Python

Motsvarigheten till Python bubbelsorteringsalgoritmen:

def bubble_sort(array):
    size = len(array)
    for i in range(size - 1):
        for j in range(size - i - 1):
            if array[j] > array[j + 1]:
                array[j], array[j + 1] = array[j + 1], array[j]

array = [64, 34, 25, 12, 22, 11, 90]
bubble_sort(array)
print("Array ordenado:", array)


 

Fördelar med bubbelsorteringsalgoritm

Bubbelsorteringsalgoritmen har några fördelar, till exempel:

  1. lindra: Bubbelsorteringsalgoritmen är lätt att förstå och implementera. Det kräver inga komplicerade kunskaper och passar nybörjare inom programmering.
  2. Låg kodkomplexitet: Koden som krävs för att implementera bubbelsorteringsalgoritmen är relativt kort och koncis. Detta gör det till ett snabbt alternativ för att sortera ett litet antal artiklar.

Nackdelar med bubbelsorteringsalgoritm

Trots sin enkelhet har bubbelsorteringsalgoritmen också några nackdelar:

  1. Ineffektivitet i stora datamängder: Bubbelsorteringsalgoritmen är inte effektiv när det gäller exekveringstid när man hanterar stora datamängder. Dess tidskomplexitet är O(n^2), vilket innebär att exekveringstiden ökar snabbt när storleken på datasetet ökar.
  2. Antal jämförelser: Bubbelsorteringsalgoritmen utför ett stort antal jämförelser, även när matrisen redan är sorterad. Detta kan leda till onödig förlust av prestanda och resurser.
  Labyrintgeneratorer: En komplett guide till att skapa, anpassa och ladda ner

Alternativ till bubbelsorteringsalgoritmen

När datamängder blir större och mer komplexa är det viktigt att överväga effektivare alternativ till bubbelsorteringsalgoritmen. Några av de populära alternativen inkluderar:

  1. Insättningssorteringsalgoritm: Denna algoritm delar upp listan i en ordnad del och en oordnad del, och infogar varje element i den oordnade delen i rätt position inom den ordnade delen. Den har en tidskomplexitet på O(n^2) i värsta fall, men är mer effektiv än bubbelsorteringsalgoritmen i de flesta fall.
  2. Valsorteringsalgoritm: Denna algoritm delar upp listan i en ordnad del och en oordnad del, och väljer upprepade gånger det minsta elementet från den oordnade delen och placerar det i slutet av den ordnade delen. Den har en tidskomplexitet i värsta fall av O(n^2), men är också mer effektiv än bubbelsorteringsalgoritmen i de flesta fall.

Bubble Algorithm FAQ

1. Vad är tidskomplexiteten för bubbelsorteringsalgoritmen?

Bubbelsorteringsalgoritmen har en tidskomplexitet på O(n^2), där "n" är antalet element som ska sorteras. Detta innebär att körtiden för algoritmen ökar kvadratiskt när storleken på listan ökar.

2. När är det lämpligt att använda bubbelsorteringsalgoritmen?

Bubbelsorteringsalgoritmen är lämplig när listan över element som ska sorteras är liten. På grund av dess tidskomplexitet rekommenderas den inte för användning på stora datamängder eftersom mer effektiva algoritmer finns tillgängliga.

3. Är bubbelsorteringsalgoritmen stabil?

Ja, bubbelsorteringsalgoritmen är en stabil sorteringsalgoritm. Detta innebär att den bibehåller den relativa ordningen av element med lika nycklar under sorteringsprocessen.

4. Vilket är det bästa alternativet till bubbelsorteringsalgoritmen?

Valet av det bästa alternativet till bubbelsorteringsalgoritmen beror på sammanhanget och problemets specifika krav. Emellertid används vissa mer effektiva algoritmer, såsom quicksort och mergesort , ofta på grund av deras lägre tidskomplexitet.

  Vad är en konventionell algoritm och varför ska du bry dig?

5. Kan bubbelsorteringsalgoritmen förbättras?

Ja, det finns varianter och optimeringar av bubbelsorteringsalgoritmen, som "dubbelriktad bubblesortering" och "förbättrad bubblesortering". Dessa optimeringar minskar antalet jämförelser och antalet iterationer som krävs för att sortera en lista.

6. Var kan jag hitta mer information om sorteringsalgoritmer?

Du kan hitta mer information om sorteringsalgoritmer i tillförlitliga källor som Wikipedia. Här är några användbara länkar:

Slutsats

I den här artikeln har vi utforskat bubbelsorteringsalgoritmen i programmeringsspråken C och Java. Vi har lärt oss hur den här algoritmen fungerar steg för steg, och vi har sett den praktiska implementeringen på båda språken. Vi har också diskuterat fördelarna och nackdelarna med bubbelsorteringsalgoritmen och utforskat effektivare alternativ.

Även om bubbelsorteringsalgoritmen är enkel och lätt att implementera, är det viktigt att överväga dess effektivitet på större datamängder. I sådana fall är det tillrådligt att överväga mer effektiva sorteringsalgoritmer, såsom infogningssortering eller urvalssortering.

Vi hoppas att den här artikeln har gett dig en gedigen förståelse för bubbelsorteringsalgoritmen.