排序方式1.0(四种,此处是用python写的,后续会加入其他语言的写法)

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]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值