1. 程式人生 > >C語言訓練-3441-氣泡排序

C語言訓練-3441-氣泡排序

Problem Description LeiQ當上了體育委員,現在老師讓他去給班級裡的人排隊,LeiQ剛學了排序,所以他想以這種方式給班級裡的人排隊(從矮到高),他想知道排序完成後的結果。 Input 多組輸入,每組的第一行是一個正數n(1<=n<=100),第二行是n個數,表示每一個人的高度。 Output 輸出排序完成後的結果。 Sample Input 3 176 175 174 Sample Output 174 175 176 題目難度不大,主要是一個氣泡排序的問題

#include<bits/stdc++.h>
using namespace std;

int main(){
  int n;
  while(~scanf("%d",&n)){
    int a[100];
    for(int i=0;i<n;i++){
      scanf("%d",&a[i]);
    }
    for(int i=0;i<n-1;i++){
      for(int j=0;j<n-i-1;j++){
        if(a[j]>a[j+1]){
          int t;
          t=a[j];a[j]=a[j+1];a[j+1]=t;
        }
      }
    }
    for(int i=0;i<n;i++){
      if(i==0) printf("%d",a[i]);
      else printf(" %d",a[i]);
    }
    printf("\n");
  }
  return 0;
}


//選擇排序
#include<bits/stdc++.h>
using namespace std;

int main(){
  int n;
  while(~scanf("%d",&n)){
    int a[100];
    for(int i=0;i<n;i++){
      scanf("%d",&a[i]);
    }
    for(int i=0;i<n-1;i++){
      for(int j=i+1;j<n;j++){
        if(a[i]>a[j]){
          int t;
          t=a[i];a[i]=a[j];a[j]=t;
        }
      }
    }
    for(int i=0;i<n;i++){
      if(i==0) printf("%d",a[i]);
      else printf(" %d",a[i]);
    }
    printf("\n");
  }
  return 0;
}