算法思想
选择排序是一种理解起来比较简单的排序思想,时间复杂度为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)
如有问题,请随时指出,万分感谢!