hustcc / hustcc/JS-Sorting-Algorithm

快速排序的实现方式有优化空间

Aberta
#64 0 comentários 0 reações 0 responsáveis Ver no GitHub
Linguagem predominante
Java
Estrelas
5.2k
Forks
1.1k
Métricas de merge de PRs
Nenhum PR com merge em 30d

Descrição

快速排序的精髓在于“减少swap的次数”,目前的实现代码中,swap次数偏多,不够精简,在GIF动图的演示里也能看出问题。
正确的实现方式可以参考[wikipedia](https://zh.wikipedia.org/zh-sg/快速排序),以下是python实现方式的代码:
```python
def quickSort(arr, left=None, right=None):
left = 0 if not isinstance(left,(int, float)) else left
right = len(arr)-1 if not isinstance(right,(int, float)) else right
if left < right:
partitionIndex = partition(arr, left, right)
quickSort(arr, left, partitionIndex-1)
quickSort(arr, partitionIndex+1, right)
return arr

def partition(arr, left, right):
pivot = arr[right]
i, j= left, right - 1
while True:
while i<=j and arr[i]=pivot:
j-=1
if i

Guia de contribuição

Nenhum guia de contribuição indexado para este repositório

Avaliação

Esta issue ainda não foi avaliada.

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.