经典算法与数据结构的c++实现——直接选择排序
来源:互联网 发布:太阳照常升起影评 知乎 编辑:程序博客网 时间:2024/06/05 06:43
因为是经典的算法,所以网上描述一大把,直接上个图,直观些,给记性不好的菜鸟(如我)一点儿提示。
算法很简单,遍历整个数组,依次选取最小值放到数组前面。
下面是代码(欢迎批评指点,之后应该会放到github上:https://github.com/y277an/princeton_algs4):
//---------------------------------Specification of Program------------------------------// Program Name:直接选择排序// Tools:VS_2013// Language: C++// Description: 可自由输入,不需要提早知道数据长度// Date:2016.3.18// Author:mseddl//----------------------------------------------------------------------------------------#include <iostream>using namespace std;void Swap(int& one, int & another){one ^= another;another ^= one;one ^= another;}void SelectSort(int *arr, int len){for (int i = 0; i < len-1; i++){int nSmallest = arr[i];int flag(i);//记录新产生的最小值的索引for (int j = i; j < len; j++){if (arr[j] < nSmallest){nSmallest = arr[j];flag = j;}}if (flag != i){Swap(arr[i], arr[flag]);}}}int main(){int len(0), temp;int *arr = new int[100];char ch;cout << "请输入要排序的数字,以空格隔开:";while (1){cin >> temp;arr[len++] = temp;cin.get(ch);if (ch == '\n'){break;}}SelectSort(arr, len);cout << "排序后的数字为:";for (int i = 0; i < len; i++){cout << arr[i] << " ";}cout << endl;delete[] arr;}
0 0
- 经典算法与数据结构的c++实现——直接选择排序
- 数据结构与算法---直接选择排序
- 经典排序算法——直接选择排序
- 【数据结构与算法】【排序】直接插入排序的代码实现
- 数据结构与算法——选择排序(Java实现)
- 数据结构算法之排序系列Java、C源码实现(3)--直接选择排序
- 经典算法学习——直接选择排序
- 经典算法与数据结构的c++实现——shell排序算法
- 【数据结构与算法】【排序】简单选择排序的代码实现
- [数据结构与算法]直接插入排序的实现
- 数据结构——直接选择排序(c++)
- 【数据结构与算法】——选择排序
- 【数据结构与算法】——选择排序
- 【大话数据结构&算法】直接选择排序(Java/C实现源码)
- 经典算法与数据结构的c++实现——冒泡排序
- 经典算法与数据结构的c++实现——插入排序
- 经典算法与数据结构的c++实现——快速排序
- 选择排序的实现——直接选择排序
- jetty和ant和perl的关联
- apk和wireshark和velocity的关联
- 求最大公约数算法
- c++和wireshark和plsql的关联
- plsql和mangodb和udp的关联
- 经典算法与数据结构的c++实现——直接选择排序
- tomcat和python和jboss的关联
- .net和plsql和lua的关联
- Android Studio依赖其他工程
- mangodb和windows和opencv的关联
- 中国男人正在大步倒退
- javascript和sybase和struts2的关联
- Windows下用Matlab加载caffemodel做图像分类
- httpclient和ssh和shell的关联