バブルソートの基礎問題
https://onlinejudge.u-aizu.ac.jp/courses/lesson/1/ALDS1/all/ALDS1_2_A
で以下の2つのコードを提出しました。
どちらもすべてのテストケースについて同じ答えを出力しましたが、提出すると一番目のコードは一つ目のテストケース
1
100
の時点でWAになってしまいます。
出力形式に間違いがないか確認したのですが、おそらく問題はないと思います。
どこを直せばいいのでしょうか?
↓通らなかったコード
C++
1#include<iostream> 2using namespace std; 3int main(){ 4 int N; 5 int i,j; 6 int t,count; 7 cin >> N; 8 int arr[N]; 9 for(i=0;i<N ;i++){ 10 cin >> arr[i]; 11 } 12 for(i=N-1 ; i>=1 ; i--){ 13 for(j=1 ; j<=i ; j++){ 14 if(arr[j-1]>arr[j]){ 15 t=arr[j]; 16 arr[j]=arr[j-1]; 17 arr[j-1]=t; 18 count++; 19 } 20 } 21 } 22 for(i=0 ; i<N ; i++)cout << arr[i] << " "; 23 cout << "\n" << count << "\n"; 24}
↓通ったコード
C++
1#include<iostream> 2using namespace std; 3 4//flagを用いたバブルソート 5int bubbleSort(int A[], int N){ 6 int sw = 0; 7 bool flag = 1; 8 for( int i = 0; flag; i++ ){ 9 flag = 0; 10 for( int j = N-1; j >=i+1; j-- ){ 11 if(A[j] < A[j-1]){ 12 //隣接要素を交換する 13 swap(A[j],A[j-1]); 14 flag = 1; 15 sw++; 16 } 17 } 18 } 19 return sw; 20} 21int main(){ 22 int A[100], N, sw; 23 cin >> N; 24 for( int i = 0; i < N; i++)cin >> A[i]; 25 26 sw = bubbleSort(A, N); 27 28 for( int i = 0; i < N; i++){ 29 if(i) cout << " "; 30 cout << A[i]; 31 } 32 cout << endl; 33 cout << sw << endl; 34 35 return 0;
どうかよろしくお願いします。
回答2件
あなたの回答
tips
プレビュー