选择排序 Selection Sort
选择排序是一种很直观的排序算法,让我们来用同学们排队来演示一番吧。









Python代码
学习Python编程的同学们有机会一定要自己练习一下哦,这样编程的能力才可以提高。
# 一个身高列表,未排序
alist = [155, 156, 170, 151, 142]
print(alist)
for i in range(len(alist)-1):
# i会从0到列表长度减2,为什么?因为最后一轮就1个同学不用再排了
# 找最矮的同学,记住最矮同学的位置s和身高sg
s = i
sg = alist[i]
for j in range(i+1, len(alist)):
if alist[j] < sg:
sg = alist[j]
s = j
# 让最矮的和未排序序列中的第一个(就是i这个位置)进行交换
# 如果最矮的就是未排序列表中的第一个,则不用交换
if s != i:
temp = alist[i]
alist[i] = alist[s]
alist[s] = temp
# 排好序的身高列表
print(alist)
C++代码
学习C++编程的同学们有机会一定要自己练习一下哦,这样编程的能力才可以提高。
#include <iostream>
using namespace std;
int main() {
// # 一个身高列表,未排序
int alist[5] = {155, 156, 170, 151, 142};
for (int i=0; i<5; i++) {
cout << alist[i] << ' ';
}
for (int i=0; i<4; i++) {
//i会从0到列表长度减2,为什么?因为最后一轮就1个同学不用再排了
// 找最矮的同学,记住最矮同学的位置s和身高sg
int s = i;
int sg = alist[i];
for (int j=i+1; j<5; j++) {
if (alist[j] < sg) {
sg = alist[j];
s = j;
}
}
// 让最矮的和未排序序列中的第一个(就是i这个位置)进行交换
// 如果最矮的就是未排序列表中的第一个,则不用交换
if (s != i) {
int temp = alist[i];
alist[i] = alist[s];
alist[s] = temp;
}
}
// 排好序的身高列表
for (int i=0; i<5; i++) {
cout << alist[i] << ' ';
}
return 0;
}
看漫画也能学编程和算法?没错!编程玩家俱乐部正在连载系列课程《看漫画学算法》带你用轻松看漫画的方式来学习算法,本课程面向零基础学员,只要坚持学习并多思考和多练习,相信你一定会成为编程算法高手!如果喜欢本课程,就收藏一下哦,转发给你的小伙伴们,大家一起来学习!
