1. 程式人生 > >JSK-133 氣泡排序【排序】

JSK-133 氣泡排序【排序】

氣泡排序 氣泡排序是一種常見的排序演算法,本題要求用氣泡排序演算法對一組數字進行從小到大排序 輸入:輸入的是一行數字,就是我們需要排序的數字 輸出:輸出是從小到大排序好的數字,數字之間用空格分開 樣例輸入 2 1 5 8 21 12 樣例輸出 1 2 5 8 12 21

問題連結JSK-133 氣泡排序 問題描述:(略) 問題分析:     氣泡排序雖然時間上不是好的演算法,但卻是廣為人知的演算法。     這個題坑人之處在於沒有說出資料的規模,暫時用1024試了一下,還好通過了。     排序函式bubbleSort()的程式碼是從參考連結中CV過來的,沒有修改。 程式說明:     還有一個坑,俺掉進去了。輸出的“數字之間用空格分開”這句話的含義是,最後一個數的後面沒有空格。最近寫簡單題,許多題這一點上不講究,習慣了,一不小心…,唉! 參考連結

Bubble sort 題記:功能要儘可能封裝到函式。

AC的C語言程式如下:

/* JSK-133 氣泡排序 */

#include <stdio.h>

#define N 1024
int a[N];

void bubbleSort(int numbers[], int array_size)
{
  int i, j, temp;

  for (i = (array_size - 1); i > 0; i--)
    for (j = 1; j <= i; j++)
      if (numbers[j-1] > numbers[j]) {
        temp =
numbers[j - 1]; numbers[j - 1] = numbers[j]; numbers[j] = temp; } } int main(void) { int n = 0, i; // 讀入資料 while(scanf("%d", &a[n]) != EOF) n++; // 排序 bubbleSort(a, n); // 輸出結果 for(i = 0; i < n; i++) { if(i == 0) printf
("%d", a[i]); else printf(" %d", a[i]); } printf("\n"); return 0; }