请写一个将100个数值按升序排列的算法。
随机数值数组：[23, 11, 43, 22, 56, 78, 95, 32, 17, 89, ...... ]
这是一种基于比较的排序算法，称为快速排序（Quick Sort）：

1. 选择一个基准数（pivot），比如选择数组的第一个数。

2. 通过一趟排序将数组分成两部分，其中一部分的所有数据都比基准数小，另一部分都比基准数大。这个过程叫做partition。

3. 递归地对两部分继续进行快速排序，直到整个序列顺序正确。

具体的排序步骤如下：

```
def quicksort(arr, low, high):
    if low < high:
        # partition过程
        pivot_index = partition(arr, low, high)
        # 递归地对左半部分进行快速排序
        quicksort(arr, low, pivot_index - 1)
        # 递归地对右半部分进行快速排序
        quicksort(arr, pivot_index + 1, high)
 
def partition(arr, low, high):
    # 取第一个数为基准数
    pivot_value = arr[low]
    left_index = low + 1
    right_index = high
    done = False
    while not done:
        # 从左往右找到第一个比基准数大的数
        while left_index <= right_index and arr[left_index] <= pivot_value:
            left_index += 1
        # 从右往左找到第一个比基准数小的数
        while left_index <= right_index and arr[right_index] >= pivot_value:
            right_index -= 1
        if right_index < left_index:
            # partition过程结束
            done = True
        else:
            # 交换左右两个数
            arr[left_index], arr[right_index] = arr[right_index], arr[left_index]
    # 将基准数放到正确的位置
    arr[low], arr[right_index] = arr[right_index], arr[low]
    return right_index

# 调用quicksort函数进行排序
arr = [23, 11, 43, 22, 56, 78, 95, 32, 17, 89, ...... ]
quicksort(arr, 0, len(arr) - 1)
print(arr)
```