Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- float haversine_km(float lat1, float long1, float lat2, float long2){
- float dlong = (long2 - long1) * d2r;
- float dlat = (lat2 - lat1) * d2r;
- float a = pow(sin(dlat/2.0), 2) + cos(lat1*d2r) * cos(lat2*d2r) * pow(sin(dlong/2.0), 2);
- float c = 2 * atan2(sqrt(a), sqrt(1-a));
- float d = 6367 * c;
- return d;
- }
- void insertionSort(struct novasrotas array_rotas[], int tam)
- {
- int i, j;
- struct novasrotas aux;
- for(i = 1; i < tam; i++){
- j = i;
- while((j != 0) && (haversine_km(array_rotas[j].latitude, array_rotas[j].longitude, 38.750, -9.110) < haversine_km(array_rotas[j-1].latitude, array_rotas[j-1].longitude, 38.750, -9.110))) {
- aux = array_rotas[j];
- array_rotas[j] = array_rotas[j-1];
- array_rotas[j-1] = aux;
- j--;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement