简单选择排序
排序 简单 选择
2023-09-27 14:25:21 时间
图示
参考代码
void selectSort(int A[], int lens) { if (A == NULL || lens <=0) return; for (int i = 0; i < lens; ++i) { int minp = i; for (int j = i+1; j < lens; ++j) { if (A[j] < A[minp]) minp = j; } swap(A[minp], A[i]); } }
测试
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
#include <iostream> using namespace std; void selectSort(int A[], int lens) { if (A == NULL || lens <=0) return; for (int i = 0; i < lens; ++i) { int minp = i; for (int j = i+1; j < lens; ++j) { if (A[j] < A[minp]) minp = j; } swap(A[minp], A[i]); } } void tranverse(int A[], int lens) { for (int i = 0; i < lens; ++i) cout << A[i] << " "; cout << endl; } int main() { int A[] = {5, 2, 9, 1, 3, 2, 2, 7}; int lens = sizeof(A) / sizeof(*A); tranverse(A, lens); selectSort(A, lens); tranverse(A, lens); }
性能
空间复杂度:O(1)
时间复杂度:最好、最坏、平均统统O(n2)
稳定性
不稳定。案例:排序前2,4,4*,3。排序后2,3,4*,4.
相关文章
- 程序员必知的8大排序(二)-------简单选择排序,堆排序(java实现)
- Numpy中排序操作partition,argpartition,sort,argsort
- jquery 鼠标拖动排序Li或Table
- python中 yield 的用法详解——最简单,最清晰的解释(排序节省内存消耗)
- 一文看懂推荐系统:排序09:Field-aware Factorization Machines(FFM),从FM改进来的,效果不咋地
- 29EasyUI 数据网格- 自定义排序
- 1029 Median (25 分) 【难度: 简单 / 知识点: 排序】
- 1028 List Sorting (25 分) 【难度: 简单 / 知识点: 排序】
- 【PAT乙级】1045 快速排序 (25 分)
- 1/31并查集,拓扑排序
- [转]Object.keys()和for in的排序问题
- JS leetcode 有多少小于当前数字的数字 解题分析,你应该了解的桶排序
- C++按值对字典进行排序的程序
- 如何理解快速排序的时间复杂度是O(nlogn)
- 6-归并排序
- java字符串数组排序
- 一种排序(nyoj8)(简单排序)
- 排序算法之简单排序
- 若干排序算法简单汇总(二)
- 如何处理新版javascript 坑爹的1635排序
- 归并排序及其常见面试题
- 拓扑排序入门(真的很简单)
- leetcode 83. Remove Duplicates from Sorted List 删除排序链表中的重复元素(简单)
- Java排序算法(一)冒泡排序