用ts语言写一个堆排序
时间: 2023-04-04 19:00:22 浏览: 78
好的,以下是用 TypeScript 语言实现堆排序的代码:
```typescript
function heapSort(arr: number[]): number[] {
// 构建最大堆
for (let i = Math.floor(arr.length / 2) - 1; i >= ; i--) {
heapify(arr, i, arr.length);
}
// 依次取出最大值,放到数组末尾
for (let i = arr.length - 1; i > ; i--) {
[arr[], arr[i]] = [arr[i], arr[]];
heapify(arr, , i);
}
return arr;
}
function heapify(arr: number[], i: number, len: number) {
const left = 2 * i + 1;
const right = 2 * i + 2;
let largest = i;
if (left < len && arr[left] > arr[largest]) {
largest = left;
}
if (right < len && arr[right] > arr[largest]) {
largest = right;
}
if (largest !== i) {
[arr[i], arr[largest]] = [arr[largest], arr[i]];
heapify(arr, largest, len);
}
}
```
以上就是用 TypeScript 语言实现堆排序的代码,希望能对你有所帮助。
相关推荐
![ts](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)