ALDS_1_A
ALDS 1Aやっと解けました.結果として,やっぱり最初から問題文に記載してあった擬似コードを「よく見て」書いたらよかったと思った.
最初に大分前に書いたバブルソートと選択ソートについての記事,あれの選択ソートを参考にほぼそのまま写した結果,最終的にソートはされるけれどよく意味が分からない・・・というより,条件を満たさないコードが出来上がってしまった.ので,おとなしく擬似コードを使って書いたら,あっさりと通った.
#include <iostream> using namespace std; int main(){ int n=0,a[1000]={0}; cin>>n; for(int i=0;i<n;i++){ cin>>a[i]; } for(int i=0;i<n;i++) if(i==n-1){cout<<a[i]<<endl;}else{cout<<a[i]<<" ";} int i,j,v,cnt; for(int i=1;i<n;i++){ cnt++; v=a[i]; j=i-1; while((j>=0)&&(a[j]>v)){ a[j+1]=a[j]; j--; } a[j+1]=v; for(int g=0;g<n;g++){ if(g==n-1){cout<<a[g]<<endl;}else{cout<<a[g]<<" ";} } } return 0; }
このコード,最初提出したらWAになって「あれ???」となって暫く放置してたのですが,問題文読み返してるときに
for(int i=0;i<=n-1;i++)
じゃなくてこれ
for(int i=1;i<n;i++)
じゃね?
となったので書き換えたら,見事一発で通った.明らかに早まりすぎてるので,落ち着いて問題読んで適切なコードを書きたいです.
そもそもいうと,これ 選択ソートじゃなくて挿入ソートなんですよね(Insertionで気づくべきだった)...