私は、フライト情報の配列とフライト数をソート関数に渡しています。フライトアレイ内にはフライトID(例:H100.15005)があり、私の目標はフライト情報に基づいてフライト情報の昇順で並べ替えることです。どのようにバブルソート機能を修正できますか?Cでこのバブルソート機能を修正するにはどうすればよいですか?
言語:Cプラットフォーム:Ubuntuの(64ビット) 16.04 LTSエディタ:Vimの7.4制約:MacのOS X OS上の仮想マシンの基本的なソートアルゴリズムを使用する必要があります。ここで
は前とコードとともに出力をソートした後です:
Initial Flights
Flight Id From Dest Depart Avail Unit Price
H100.15005 SAT HOU 08:00 4 65.00
H111.15009 SAT HOU 17:00 10 65.00
H555.15022 SAT DFW 08:00 70 70.00
H444.15015 ATL NYC 08:00 10 130.00
H200.15010 ATL HOU 08:00 20 120.00
H222.15005 HOU ATL 10:00 15 125.00
H333.15010 ATL NYC 13:00 20 130.00
H444.15001 ATL NYC 08:00 10 130.00
H100.15006 SAT HOU 08:00 12 65.00
H333.15012 ATL NYC 12:55 60 130.00
H666.15020 NYC ATL 01:45 50 140.00
Sorted Flights
Flight Id From Dest Depart Avail Unit Price
H100.15005 SAT HOU 08:00 4 65.00
H111.15009 SAT HOU 17:00 10 65.00
H555.15022 SAT DFW 08:00 70 70.00
H444.15015 ATL NYC 08:00 10 130.00
H200.15010 ATL HOU 08:00 20 120.00
H222.15005 HOU ATL 10:00 15 125.00
H333.15010 ATL NYC 13:00 20 130.00
H444.15001 ATL NYC 08:00 10 130.00
H100.15006 SAT HOU 08:00 12 65.00
H333.15012 ATL NYC 12:55 60 130.00
H666.15020 NYC ATL 01:45 50 140.00
void sortFlights(Flight flightM[], int iFlightCnt) {
int i;
int j;
Flight flightIdTemp;
for(i = 0; i < (iFlightCnt - 1); i++) {
for(j = (iFlightCnt - 1); j > i; j--) {
if(flightM[j-1].szFlightId > flightM[j].szFlightId) {
flightIdTemp = flightM[j-1];
flightM[j-1] = flightM[j];
flightM[j] = flightIdTemp;
}
}
}
}
投稿を編集して、実装に現在間違っていることの説明を含めることはできますか? – fractalwrench
'>'の代わりに 'strcmp'を使います。 – BLUEPIXY