close

依地文翻譯

以下轉錄自:http://program-lover.blogspot.com/2008/06/bubble-sort_20.html


氣泡排序法(bubble sort)是排序演算法(sorting algorithm)中較簡略單純 翻譯一種 翻譯社而其運作 翻譯道理是藉由逐次比力相鄰 翻譯兩筆資料,並遵照排序條件(由大至小或由小至大)交流資料直到排序完成為止。

  假定此刻我們需要將 n 筆資料 A1、A2、......、An 由小排到大,則先比較 A1 與 A2,若是 A1 < A2 則交流兩筆資料。接著對照 A2 與 A3,若是 A2 < A3 則交流兩筆資料。以此類推,一向到比較完 An - 1 與 An 為止 翻譯社

  如許就完了嗎?固然還沒。不外到今朝為止,我們已肯定 An 是 n 筆資猜中最大 翻譯數字。

  接下來,重複方才的動作:對照 A1 與 A2、A2 與 A3、A3 與 A4、......,分歧的是,這一次只需要比力到 An - 2 與 An - 1 便可。到目前為止,我們可以肯定 An - 1 是 n 筆資猜中次大的數字 翻譯社

  接著就繼續重複一樣的動作,便能肯定每輪比力中 翻譯最大資料,皆在這些資料的最後面 翻譯社直到肯定所有筆資料為止。


  其道理的虛擬碼大致如下:

void bubblesort(Type data[1..n])
{
Index i 翻譯公司 j;
for (i = n to 1)
{
for (j = 1 to i - 1)
{
if (data[j] < data[j + 1])
{
exchange data[j] and data[j + 1];
}
}
}
}


  讓我們舉個例來講明。若是我們如今要將以下這些資料由大排到小:

1 43 6 79 50 2

  則第一輪的比力與互換過程以下:

43 1 6 79 50 2

43 6 1 79 50 2

43 6 79 1 50 2

43 6 79 50 1 2

43 6 79 50 2 1

  第二輪的對照與互換過程以下:

43 6 79 50 2 1

43 79 6 50 2 1

43 79 50 6 2 1

43 79 50 6 2 1

  接下來以此類推。


  由此可以看到,資估中較小的一筆會藉由交流漸漸"浮"到資料頂端,其氣泡排序之名也是因此而來的 翻譯社

  而在另外一方面,我們也能夠留意到,若是要利用氣泡排序法將 n 筆資料排序,需要進行的對照次數為: (n - 1) + (n - 2) + (n - 3) + ... + 1 = n(n - 1) / 2。。-> 翻譯社|,-> 翻譯公司|的-> 翻譯

  對於一種排序演算法而言,如許的比力次數是相當沒有效率的。是以這個方式多半只是被拿來簡單的诠釋排序概念,而不是拿來實際運用。


  最後,照老例"附贈"一個 C 說話實現泡泡排序法的程式:

#include <stdio.h>
#include <stdlib.h>

void bubblesort(int *data 翻譯公司 int n);

int main(void)
{
int i 翻譯公司 n 翻譯公司 data[10];

printf("請輸入資料筆數 n(<= 10): ");
scanf("%d", &n);

for (i = 0; i < n; i++)
{
printf("請輸入第 %d 筆資料: ", i + 1);
scanf("%d", &data[i]);
}

// 履行氣泡排序法
bubblesort(data, n);

printf(" 排序後 翻譯結果: ");
for (i = 0; i < n; i++)
{
printf("%d ", data[i]);
}

printf(" ");
system("pause");
}

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





來自: http://blog.xuite.net/coke750101/coketech/20830605-%E6%B0%A3%E6%B3%A1%E6%8E%92%E5%BA%8F%E6%B3%95+-+B有關翻譯的問題歡迎諮詢天成翻譯社

arrow
arrow
    文章標籤
    翻譯社
    全站熱搜
    創作者介紹
    創作者 chavezw15462 的頭像
    chavezw15462

    chavezw15462@outlook.com

    chavezw15462 發表在 痞客邦 留言(0) 人氣()