Heim  >  Artikel  >  php教程  >  Sortierblasensortierung

Sortierblasensortierung

高洛峰
高洛峰Original
2016-12-19 13:20:341072Durchsuche

Das Grundkonzept der Blasensortierung (BubbleSort) besteht darin, zwei benachbarte Zahlen der Reihe nach zu vergleichen, die Dezimalzahl vorne und die große Zahl hinten einzutragen. Das heißt, im ersten Durchgang: Vergleichen Sie zuerst die erste und die zweite Zahl, setzen Sie die Dezimalzahl zuerst und die große Zahl zuletzt. Vergleichen Sie dann die zweite und die dritte Zahl, setzen Sie die Dezimalzahl voran und die große Zahl hinten und machen Sie so weiter, bis Sie die letzten beiden Zahlen vergleichen, stellen Sie die Dezimalstelle voran und die große Zahl hinten. Dies ist das Ende der ersten Reise, so dass am Ende die größte Anzahl zurückbleibt. Im zweiten Durchgang: Beginnen Sie den Vergleich weiterhin mit dem ersten Zahlenpaar (weil es durch den Austausch der zweiten und der dritten Zahl bedingt sein kann, dass die erste Zahl nicht mehr kleiner als die zweite Zahl ist), setzen Sie die Dezimalzahl an die erste Stelle , und die große Zahl Nach dem Platzieren wird der Vergleich bis zur vorletzten Zahl fortgesetzt (die vorletzte Stelle ist bereits die größte). Am Ende des zweiten Durchgangs wird eine neue maximale Zahl an der vorletzten Zahl erhalten Position (tatsächlich ist es die größte Zahl in der gesamten Folge). Fahren Sie so fort und wiederholen Sie den obigen Vorgang, bis die Sortierung endgültig abgeschlossen ist.

C-Code wird wie folgt implementiert:

#include <stdio.h>  
  
//打印数组  
void display(int array[],int size){  
    printf("the array is:");  
    int i;  
    for(i=0;i<size;i++){  
        printf("%d ",array[i]);  
    }  
    printf("\n");  
}  
  
//冒泡排序算法  
void sort(int array[],int size){  
    int i,j,temp,flag;  
    for(i=0;i<size;i++){  
        flag = 0;  
        for(j=size-1;j>i;j--){  
            //如果前一个数大于后一个数,则交换  
            if(array[j-1]>array[j]){  
                temp = array[j];  
                array[j] = array[j-1];  
                array[j-1] = temp;  
                flag = 1;  
            }  
        }  
        //如果本次排序没有进行一次交换,则break,减少了执行之间。  
        if(flag == 0){  
            break;  
        }  
        display(array,size);  
    }  
}  
  
int main(void){  
    int array[10]={34,45,1,39,21,68,65,100,4,51};  
    display(array,10);  
    sort(array,10);  
    return 0;  
}



Weitere Artikel zum Sortieren und Blasensortieren finden Sie hier Achten Sie auf die chinesische PHP-Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:BlasensortierungNächster Artikel:Blasensortierung