前两天刚装了python 3.1.1, 禁不住技痒写点code。
1.选择排序
1.选择排序
<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->
>>>
def
SelSort(L):
length
=
len(L)
for
i
in
range(length
-
1
):
minIdx
=
i
minVal
=
L[i]
j
=
i
+
1
while
j
<
length:
if
minVal
>
L[j]:
minIdx
=
j
minVal
=
L[j]
j
=
j
+
1
L[i],L[minIdx]
=
L[minIdx],L[i]
return
L
2.冒泡排序
>>>
def
SelSort(L):
length
=
len(L)
for
i
in
range(length
-
1
):
minIdx
=
i
minVal
=
L[i]
j
=
i
+
1
while
j
<
length:
if
minVal
>
L[j]:
minIdx
=
j
minVal
=
L[j]
j
=
j
+
1
L[i],L[minIdx]
=
L[minIdx],L[i]
return
L
<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->
>>>
def
bubSort(L):
swapped
=
True
while
swapped:
swapped
=
False
for
i
in
range(len(L)
-
1
):
if
L[i]
>
L[i
+
1
]:
L[i],L[i
+
1
]
=
L[i
+
1
],L[i]
swapped
=
True
return
L
3.合并排序
>>>
def
bubSort(L):
swapped
=
True
while
swapped:
swapped
=
False
for
i
in
range(len(L)
-
1
):
if
L[i]
>
L[i
+
1
]:
L[i],L[i
+
1
]
=
L[i
+
1
],L[i]
swapped
=
True
return
L
<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->
>>>
def
merge(left,right):
result
=
[]
i,j
=
0,0
while
i
<
len(left)
and
j
<
len(right):
if
left[i]
<=
right[j]:
result.append(left[i])
i
=
i
+
1
else
:
result.append(right[j])
j
=
j
+
1
result
+=
left[i:]
result
+=
right[j:]
return
result

>>>
def
mergesort(L):
if
len(L)
<
2
:
return
L
else
:
middle
=
int(len(L)
/
2
)
left
=
mergesort(L[:middle])
right
=
mergesort(L[middle:])
return
merge(left,right)
python用得不熟, 欢迎围观排砖~
>>>
def
merge(left,right):
result
=
[]
i,j
=
0,0
while
i
<
len(left)
and
j
<
len(right):
if
left[i]
<=
right[j]:
result.append(left[i])
i
=
i
+
1
else
:
result.append(right[j])
j
=
j
+
1
result
+=
left[i:]
result
+=
right[j:]
return
result
>>>
def
mergesort(L):
if
len(L)
<
2
:
return
L
else
:
middle
=
int(len(L)
/
2
)
left
=
mergesort(L[:middle])
right
=
mergesort(L[middle:])
return
merge(left,right)
本文介绍了三种基本的排序算法:选择排序、冒泡排序和合并排序,并提供了Python实现代码。

2万+

被折叠的 条评论
为什么被折叠?



