选择排序

    算法思想
     选择排序是一种理解起来比较简单的排序思想,时间复杂度为O(n^2),通过每次与当前值之后元素中选择最小(或最大)的与当前元素交换,每次选出一个最值,循环结束,整个数组就排好序了

    算法实现步骤
step1:两层循环,外层循环 i从0开始,
step2:内层循环 j 在 [i+1,length-1] 中取值,若arr[j] 比a[i]小,则两者交换位置
也就是说 [0, i-1]是已经排序好的 ,每经过一次外层循环,我们就多选出一个(待排序元素中的)最小值

    代码实现 C++

void Select_sort(int arr[],int low,int high)
{
	for(int i=low;i<high;i++)
	{
		for(int j=i+1;j<=high;j++)// [0,i-1]是排序好了的 
		{
			if(arr[i]>arr[j])
			{
				swap(arr[i],arr[j]);
			}
		}
	}
}

测试用例运行结果

    代码实现 python

def Select_sort(lst):
    for i in range(len(lst)-1):
        for j in range(i+1,len(lst)):
            if lst[i]>lst[j]:
                lst[i],lst[j]=lst[j],lst[i]
                
list_test=[12,23,32,7,8,75,6,8]
print("原始序列为:",list_test)
Select_sort(list_test)
print("排序后序列为:",list_test)

测试用例运行结果

如有问题,请随时指出,万分感谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值