1. 程式人生 > 其它 >Spark--->階段練習1

Spark--->階段練習1

技術標籤:演算法演算法排序

003氣泡排序

一、演算法介紹

氣泡排序是重複地遍歷要排序的序列,判斷相鄰的兩個元素的順序是否正確,若不正確,則交換位置。重複地遍歷直到沒有元素需要交換,此時序列已排好序。這個演算法的名字由來是因為越小的元素會經由交換慢慢“浮”到數列的頂端(升序或降序排列),就如同碳酸飲料中二氧化碳的氣泡最終會上浮到頂端一樣,故名“氣泡排序”。

二、演算法分析

第一輪遍歷時,從第一個元素開始,若後面的元素比當前遍歷的元素小,則交換它們的位置,直到倒數第二個元素。第一輪遍歷結束後,因為一定是較大元素向後移,所以最大的元素就被放到了最後一個位置。則此後的遍歷地結束位置都要比上一輪前移一個位置。這樣從最後一個位置開始,隨著一輪遍歷結束,各個位置被放上了對應大小的元素

如圖所示


在這裡插入圖片描述

三、演算法程式碼

void BubbleSort(int a[], int n)
{
    int i,j,temp;
    for(i=0; i<n-1; i++)
    {
        for(j=0; j<n-1-i; j++)
        {
            if(a[j]>a[j+1])
            {
                temp = a[j];
                a[j] = a[j+1];
                a[j+1] = temp;
            }
        }
} }

執行結果
在這裡插入圖片描述