<s>Human: 给定一组数字，按升序排序，并找到其中的中位数。
数字：3，2，8，4，1
</s><s>Assistant: 对于给定的数字3，2，8，4，1，我们可以使用任何一种排序算法进行排序，这里我们以快速排序为例。

快速排序是一种基于分治思想的排序算法，它将一个数组分成两个子数组，排序后在将它们合并起来。这个分割过程是通过选择一个基准值（pivot）来实现的，将比基准值小的元素移到基准值左边，将比基准值大的元素移动到右边。

这里我们使用Python实现快速排序和查找中位数的过程：

```python
def quick_sort(nums):
    if len(nums) <= 1:
        return nums
    
    pivot = nums[0]
    left, right = [], []
    for num in nums[1:]:
        if num < pivot:
            left.append(num)
        else:
            right.append(num)
    
    return quick_sort(left) + [pivot] + quick_sort(right)

def median(nums):
    sorted_nums = quick_sort(nums)
    length = len(nums)
    if length % 2 == 0:
        return (sorted_nums[length // 2 - 1] + sorted_nums[length // 2]) / 2
    else:
        return sorted_nums[length // 2]
```

对于输入的数字3，2，8，4，1，经过排序后为1，2，3，4，8。中位数为3。

因此，我们得出中位数是3。
</s>