# About

Core Values is a simple app to help you determine your top 5 core values.

Simply answer a series of comparison questions (This vs That) and when you're done you'll have a list of the top 5.

## How It Works

To illustrate how the sorting works. I'll use a list of numbers that we're trying to sort. Obviously core values don't have quantitative values that we're sorting. But this will show why questions are asked and what the answers mean.

We start out with a randomized list of core values. We take the first item from this list and add it to the sorted list.

```
2 5 1 4 7 3 6 9 <- This is the values list
8 <- This is the sorted list
```

We take the first item from the values list and compare it to the lowest priority item in the sorted list. In this case 2 vs 8.

```
5 1 4 7 3 6 9 <- This is the values list
2 <- Value we'll be comparing
(8) <- 8 is the only value, so it's the lowest
```

When we compare 2 vs 8, 8 is greater than 2 so we choose 8 as the higher priority. 2 is placed after 8. We take 5 off the list as the next value we'll compare.

```
1 4 7 3 6 9 <- This is the values list
5 <- Value we'll be comparing
8 (2) <- 2 is the lowest priority value
```

We then compare 5 vs 2. In this case 5 is a higher priority than 2 so we compare the next highest priority, which is 8.

```
1 4 7 3 6 9 <- This is the values list
5 <- Value we'll be comparing
(8) 2 <- 8 is the next highest priority value
```

We compare 5 vs 8 and choose 8 as the higher priority value. 5 gets placed after 8 in the sorted list. The next value to compare is 1.

```
4 7 3 6 9 <- This is the values list
1 <- Value we'll be comparing
8 5 (2) <- 2 is the lowest priority value
```

Next we compare 1 vs 2 and choose 2. 1 is placed after 2. The next value to compare is 4.

```
7 3 6 9 <- This is the values list
4 <- Value we'll be comparing
8 5 2 (1) <- 1 is the lowest priority value
```

We compare 4 vs 1 and choose 4. We then compare 4 vs 2 and choose 4. We compare 4 vs 5 and choose 5 so 4 goes after 5 in the sorted list. The next value we compare is 7.

```
3 6 9 <- This is the values list
7 <- Value we'll be comparing
8 5 4 2 (1) <- 1 is the lowest priority value
```

We compare 7 vs 1 and choose 7. We compare 7 vs 2 and choose 2. We compare 7 vs 4 and choose 7. We compare 7 vs 5 and choose 7. We compare 7 vs 8, choose 8. 7 is placed after 8 in the sorted array.

```
3 6 9 <- This is the values list
8 7 5 4 2 (1) <- 1 is the lowest priority value
```

Now. Because we're only looking for the top 5 values, and our sorted list has 6 items in it, we remove any items after the top 5. We remove value 1, so value 2 is now the lowest priority value in the top 5. The next value we compare is 3.

```
6 9 <- This is the values list
3 <- Value we'll be comparing
8 7 5 4 (2) <- 2 is the lowest priority value
```

We compare 3 vs 2 and choose 2. We compare 3 vs 4 and choose 4. 3 is placed after 4 in the sorted list. We remove 2 from the list because it's the 6th highest priority. The next value we compare is 6.

```
9 <- This is the values list
6 <- Value we'll be comparing
8 7 5 4 (3) <- 3 is the lowest priority value
```

We compare 6 vs 3 and choose 6. We compare 6 vs 4 and choose 6. We compare 6 vs 7 and choose 7. We place 6 after 7 in the sorted list. We remove value 3 from the list. The next value we compare is 9.

```
<- No more items in the values list
9 <- Value we'll be comparing
8 7 6 5 (4) <- 4 is the lowest priority value
```

We compare 9 vs 4 and choose 9. We compare 9 vs 5 and choose 9. We compare 9 vs 6 and choose 9. We compare 9 vs 7 and choose 9. We compare 9 vs 8 and choose 9. There are no higher priority items in the sorted list so we add 9 to the start of the list. We remove 4 from the list. There are no more items in the values list so we are done with the quiz.

`9 8 7 6 5 <- Final list of top 5 values.`

This source code is available on GitHub.