C++ 内部排序(一)
来源:互联网 发布:zs什么意思网络用语 编辑:程序博客网 时间:2024/06/07 07:14
先讲两个概念,所谓内部排序,指待排序的节点均存储在内存中。所谓排序的稳定性,指排序后,值相等的两个元素原来相对的位置是否发生变化了.举个例子。
待排序列:3(1),1,5,3(2) 稳定排序:1,3(1),3(2),5 不稳定排序:1,3(2),3(1),5
下面写了插入排序,冒泡排序和选择排序.
/*sorting functions*/#include <iostream>#define MAXN 7using namespace std;void insert_sort(int *a, int length);void buble_sort(int *a, int length);void select_sort(int *a, int length);int main(){int a[MAXN] = {34, 12, 67, 33, 23, 56, 78};int length = MAXN;//insert_sort(a, length);//buble_sort(a, length);select_sort(a, length);return 0;}/*稳定排序*/void insert_sort(int *a, int length){int temp;int i,j;for(i=1; i<length; i++){temp = a[i];for(j=i-1; j>=0 && temp<a[j]; j--){a[j+1] = a[j];}a[j+1] = temp;}for(i=0; i<length; i++){cout<<a[i]<<" ";}cout<<endl;}/*稳定排序*/void buble_sort(int *a, int length){int i,j,temp;for(i=0; i<length; i++){for(j=0; j<length-1; j++){if(a[j]>a[j+1]){temp = a[j+1];a[j+1] = a[j];a[j] = temp;}}}for(i=0; i<length; i++){cout<<a[i]<<" ";}cout<<endl;}/*不稳定排序*/void select_sort(int *a, int length){int i,j,k,temp;for(i=0; i<length-1; i++){k = i;for(j=i+1; j<length; j++){if(a[j]<a[k]){k=j;}}temp = a[i];a[i] = a[k];a[k] = temp;}for(i=0; i<length; i++){cout<<a[i]<<" ";}cout<<endl;}
- C++ 内部排序(一)
- 内部排序(一)插入排序
- 内部排序(一)直接插入法
- 内部排序一
- 内部排序(一)
- 内部排序(一)------插入排序、交换排序
- 内部排序算法(一):交换排序(冒泡排序,快速排序)
- 返回内部静态成员 熟练C/C++(一)
- 内部排序总结(一)插入排序
- 排序专题(一) / 稳定的内部排序
- Java内部排序(一)-(选择排序法之直接选择排序)
- C 排序算法(一)
- 内部排序 —— 一小点
- 【内部排序】一:直接插入排序(Straight Insertion Sorting)的多种实现(不断优化+源码)
- 内部排序算法的C/C++实现
- 基本内部排序算法-c语言
- 数据结构复习(1):内部排序--各类排序算法(C程序)
- 【算法之常用排序算法(一)】八大常用内部排序算法(快排、冒泡、希尔、堆排序等)
- App Version更新提醒
- v4l2 编程接口(一) — ioctl
- Win32 Series - The GDI Mapping Mode
- Myeclipse安装插件
- 常用电脑的人值得看看
- C++ 内部排序(一)
- Java集合中的排序问题
- Omnipeek(wildpackets)抓包:过滤器设置和数据包分析
- 直接双击启动tomcat中的startup.bat闪退
- 规则引擎如何操作内存表学习
- 冒泡排序
- JSON帮助类
- Linux中如何退出man命令
- Seoul 2007 / UVa 1398 Meteor (排序&线性扫描)