1.选择排序
排序方法(升序): 根据列表中的元素依次选择,依次选定一个,然后再和后面的元素依次做比较,如果后面的元素小于前面的元素,就调换他们的位置,一个元素确定好位置之后再选择第二个元素和后面的元素做比较,以此类推,直到所有的元素比较完。
例(python):
//升序,python
a = [9,5,4,8,6,3,1,2,7,0]
for i in range(0,len(a)):
for j in range(0,len(a)):
if a[i] <= a[j]:
a[i],a[j] = a[j],a[i]
print(a)
结果:
[0, 1, 2, 3, 4, 5, 6, 7, 8,9]
2.冒泡排序
排序方法(升序): 依次选择列表中的两个元素进行比较,如果后面的元素比前面的元素大,交换两个元素的位置,如果后面的元素比前面的元素小,则不交换,再用选择现列表中第二个元素与下一个元素进行比较,以此类推直到找到该元素的位置,然后又重新开始找下一个元素的位置。
例:
//升序,python
a = [9,5,4,8,6,3,1,2,7,0]
for i in range(0,len(a) - 1):
for j in range(0,len(a) - i - 1):
if a[j + 1] <= a[j]:
a[j + 1],a[j] = a[j],a[j + 1]
print(a)
结果:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
3.插入排序
排序方法(升序): 依次选中列表中的脚标,然后用脚标中的元素与前面的元素进行比较。
例:
//升序,python
a = [9,5,4,8,6,3,1,2,7,0]
for i in range(0,len(a)):
for j in range(i,0,-1):
if a[j - 1] >= a[j]:
a[j -1],a[j] = a[j],a[j - 1]
print(a)
结果:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
4.技术排序
排序方法:
例:
// 升序
a = [9,5,4,8,6,3,1,2,7,0]
max_num = a[0]
min_num = a[0]
//查找最大值和最小值
for num in a:
if num > max_num:
max_num = num
elif num < min_num:
min_num = num
//偏移量
offest = min_num
//计算新列表的长度
len_a1 = max_num -min_num + 1
//计数列表初始化全元素为0
a1 = [0] * len_a1
//排序后的列表初始化全元素为0
a2 = [0] * len_a1
//计数
for num in a:
a1[num - offest] += 1
print(a1)
index = 0
for i in range(0,len_a1):
for j in range(0,a1[i]):
print(i + offest,end="")
a2[index] = i + offest
index += 1
print()
print(a2)
结果:
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
0123456789
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]