1. 程式人生 > >【演算法】統計qq一天中每秒線上人數

【演算法】統計qq一天中每秒線上人數

【問題】為了統計一天內QQ每秒的線上使用者數量,每次一個使用者下線時會生成一條記錄到檔案裡:記錄裡有三個欄位(上線時間,下線時間,使用者名稱),時間以秒為單位。現在有一個檔案包含了當天生成的N條記錄(N很大),請設計一個演算法根據N條記錄統計出當天每秒線上使用者的數量。(0<=上線時間& lt;下線時間<=24*3600)

【思路】建立一個數組change[ 24*3600 ]用來記錄一天中,每秒使用者的變化情況,在第i秒上線一人change[ i ]++,在第i秒下線一人change[ i ] - -,change[ i ]若為正,說明這一秒上線人數大於下線人數,反之亦然。再建立一個online[ 24*3600 ],用來記錄每秒線上人數,online[ 0 ] = 0表示第0秒線上人數為0,計算方法為online[ n ] = online[ n-1 ] + change[ n ]