Skip to content

Commit 2f13b89

Browse files
committed
New edit
1 parent 7faea71 commit 2f13b89

File tree

1 file changed

+13
-8
lines changed

1 file changed

+13
-8
lines changed

pydatastructs/linear_data_structures/algorithms.py

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1906,25 +1906,30 @@ def radix_sort(array, comp=lambda u, v: u <= v, **kwargs):
19061906
start = kwargs.get('start', 0)
19071907
end = kwargs.get('end', len(array) - 1)
19081908

1909-
sub_array = [array[i] for i in range(start, end + 1) if array[i] is not None]
1910-
1911-
# Remove None values from sub_array before sorting
1912-
sub_array = [x for x in sub_array if x is not None]
1909+
sub_array = []
1910+
max_val = 0
1911+
for i in range(0,len(array)):
1912+
sub_array.append(array[i])
1913+
if array[i] is not None:
1914+
if array[i]>max_val:
1915+
max_val = array[i]
19131916

1914-
# Get maximum value to determine the number of digits
1915-
max_val = max(sub_array) if sub_array else 0
19161917
exp = 1
19171918
while max_val // exp > 0:
19181919
_count_sort_for_radix(sub_array, exp, comp)
19191920
exp *= 10
19201921

19211922
index = 0
1923+
none_count = 0
1924+
array = []
19221925
for i in range(start, end + 1):
1923-
if array[i] is None:
1926+
if sub_array[i] is None:
1927+
none_count += 1
19241928
continue
1925-
array[i] = sub_array[index]
1929+
array.append(sub_array[index])
19261930
index += 1
19271931

1932+
array = array + [None]*none_count
19281933
if _check_type(array, (DynamicArray, _arrays.DynamicOneDimensionalArray)):
19291934
array._modify(True)
19301935

0 commit comments

Comments
 (0)