saving and sorting times and then putting them into a high score table

Hey guys, I have had a look at several different high score table questions already and I can’t get my head round any of them. I am needing to save the current time and then decide if its in first, second or third and then display it. This is the code I have so far and it manages to fill first place but it doesn’t then move first into second if first is beaten and it doesn’t put current in second if it doesn’t beat first and so on. Can someone please help me out?

public class highscore : MonoBehaviour 
{
int current;
int first;
int second;
int third;
int seconds;
int minutes;
public GameObject Firstt;
public GameObject Secondd;
public GameObject Thirdd;

void Start () 
{
	minutes = PlayerPrefs.GetInt("Minutes");
	seconds = PlayerPrefs.GetInt("Seconds");
	current = minutes *100 + seconds;

	if (current > first) 
	{
		second = first;
		first = current;
		current = 0;
	}
	if (current > second && current < first) 
	{
		third = second;
		second = current;	
		current = 0;
		 
	}
	if (current > third && current < second && current < first)
	{
		third = current;
		current = 0;
	}

	Firstt.GetComponent<TextMesh>().text= ("1ST PLACE - " + first);
	Secondd.GetComponent<TextMesh>().text= ("2ND PLACE - " + second);
	Thirdd.GetComponent<TextMesh>().text= ("3RD PLACE - " + third);
}

}

using UnityEngine;
using System.Collections;
using UnityEngine.UI;
public class HighScore : MonoBehaviour {

	int currentscore;
	int time;
	public GameObject textscore;
	public GameObject textcurrent;

	public GameObject First;
	public GameObject Second;
	public GameObject Third;
	int first;
	int second;
	int third;
	// Update is called once per frame
	void Update () 
	{

		time = time + 1;
		textcurrent.GetComponent<Text> ().text = time.ToString();

		if (Input.GetKeyDown(KeyCode.Space))
		{
			FirstPass();
		}
	}
	void FirstPass()
	{

		currentscore = time;
		textscore.GetComponent<Text> ().text = currentscore.ToString();
		if (currentscore > first)
		{
			first = currentscore;
		}
		else if(currentscore >= second && currentscore < first)
		{
			second = currentscore;

		}
		else if (currentscore >= third && currentscore <second )
		{
			third = currentscore;
		}
		currentscore = 0;
		time = 0;
		
		BubbleSort();
	}

	void BubbleSort()
	{
		int[] arr = { first,second,third };
		
		int temp = 0;
		
		for (int i = 0; i < arr.Length; i++) 
		{
			for (int sort = 0; sort < arr.Length - 1; sort++) 
			{
				if (arr[sort] < arr[sort + 1]) 
				{
					temp = arr[sort + 1];
					arr[sort + 1] = arr[sort];
					arr[sort] = temp;
				}
			}
		}
		First.GetComponent<Text> ().text = "First"+arr[0].ToString();
		Second.GetComponent<Text> ().text ="Second"+arr[1].ToString();
		Third.GetComponent<Text> ().text = "Third"+ arr[2].ToString();
	}
}