第三章 ALDS1_2_B:Selection Sort 选择排序法
来源:互联网 发布:英国 实力 知乎 编辑:程序博客网 时间:2024/06/16 09:02
知识点
选择排序法执行步骤
(1)数组A一开始处于未排序状态
(2)从未排序部分找出出最小值的位置minj。
(3)将minj位置的元素与未排序部分的起始位置交换
(4)交换后,则前一步骤的起始位置就是排序后的元素,未排序部分的元素就从下一位开始
(5)执行步骤(2),直到全部元素都排序好。
小结
时间复杂度
O(n2) ,空间复杂度O(n) , 是不稳定排序
问题链接
ALDS1_2_B:Selection Sort
问题内容
计算数列A通过选择排序法交换元素的次数和排序完的结果
思路
在选择排序法交换元素后累加即可
代码
#include<iostream>#include<cstdio>#include<cmath>using namespace std;// 选择排序法int selectionSort(int A[], int n) { int cnt = 0; for (int i = 0; i < n; i++) { int minj = i; for (int j = i; j < n; j++) { if (A[j] < A[minj]) minj = j; } if (i != minj) swap(A[i], A[minj]), cnt++; } return cnt;}int main() { int n, A[110]; scanf("%d", &n); for (int i = 0; i < n; i++) scanf("%d", &A[i]); int cnt = selectionSort(A, n); for (int i = 0; i < n; i++) printf("%d%c", A[i], i == n - 1 ? '\n' : ' '); printf("%d\n", cnt); return 0;}
阅读全文
0 0
- 第三章 ALDS1_2_B:Selection Sort 选择排序法
- Aizu ALDS1_2_B Selection Sort(选择排序)
- ALDS1_2_B:Selection Sort
- 选择排序法 (Selection Sort)
- 选择排序(selection sort)
- 选择排序(Selection Sort)
- selection sort 选择排序
- 选择排序 Selection Sort
- 选择排序(Selection Sort)
- 选择排序(Selection Sort)
- 选择排序 (Selection Sort)
- 选择排序(Selection sort)
- 选择排序 (Selection sort)
- 选择排序Selection sort
- Selection Sort(选择排序)
- 选择排序(Selection Sort)
- Selection Sort选择排序
- selection sort 选择排序
- java如何将一句话利用代码写入到磁盘里的记书本文件中
- 关于Java面试,你应该准备这些知识点
- 算法题
- 【Luogu 3676 小清新数据结构题】【动态点分治 + 思维题】
- win8 TensorFlow
- 第三章 ALDS1_2_B:Selection Sort 选择排序法
- 从Windows2008R2迁移Mysql、Tomcat到OracleLinux7.4环境
- 在使用 Spring Boot 和 MyBatis 动态切换数据源时遇到的问题以及解决方法
- Visual Studio 2013 C++配置 Halcon 10
- General Algorithm
- 使用Spring实现Mysql的读写分离
- JavaScript中的DOM简介及应用
- 贝叶斯思维——chapter5(胜率和加数)
- 072day(输出前k大的数的尝试)