排序算法之基本排序算法:交换、选择、插入
来源:互联网 发布:石家庄网站排名优化 编辑:程序博客网 时间:2024/04/20 02:46
//交换排序/*交换法的程序最清晰简单,每次用当前的元素一一的同其后的元素比较并交换。*/void ExchangeSort(int *pData,int count){int temp;for(int i=0;i<count-1;i++){for(int j=i+1;j<count;j++){if(pData[j]<pData[i])//if(pData[i]>pData[j]){temp = pData[i];pData[i] = pData[j];pData[j] = temp;}}}}//选择排序/*思想,这种方法类似我们人为的排序习惯:从数据中选择最小的同第一个值交换,在从剩下的部分中选择最小的与第二个交换,这样往复下去。*/void SelectSort(int *pData,int count){int temp,ipos;for(int i=0;i<count-1;i++){temp = pData[i];ipos = i;for(int j=i+1;j<count;j++) //在后半部分无序数组中选择出最小的{if(pData[j]<temp){temp = pData[j];ipos = j;}}pData[ipos] = pData[i]; //将选出的最小的放到前半部分有序数组最后pData[i] = temp;}}//插入排序/*插入法较为复杂,它的基本工作原理是抽出牌,在前面的牌中寻找相应的位置插入,然后继续下一张*/void InsertSort(int *pData,int count){int i, j;int temp;for(i=1;i<count;i++){temp = pData[i];for(j=i;j>0 && pData[j-1]>temp;j--){pData[j] = pData[j-1];}pData[j] = temp;}/*for(int i=1;i<count;i++){int temp = pData[i]; //保存要插入的数字int ipos = i-1; //待插入数组(有序)的长度while(ipos>=0 && temp<pData[ipos]) //插入到有序数组{pData[ipos+1] = pData[ipos]; //后移ipos--;}pData[ipos+1] = temp; //插入}*/}//冒泡排序/*这是最原始,也是众所周知的最慢的算法了。他的名字的由来因为它的工作看来象是冒泡*/void BubbleSort(int *pData,int count){//排序,升序int temp;for(int i=0;i<count;i++){for(int j=count-1;j>i;j--) //只能是[count,i),不可以[i,count-1){if(pData[j]<pData[j-1]){temp = pData[j];pData[j] = pData[j-1];pData[j-1] = temp;}}}}
0 0
- 排序算法之基本排序算法:交换、选择、插入
- 基本排序算法(冒泡排序,选择排序,插入排序)
- 基本算法之插入排序
- 算法之插入排序与选择排序
- C++排序算法之选择、插入排序
- 【自考】排序算法-插入、交换、选择、归并排序
- 基本算法之选择排序
- 算法之基本排序(冒泡,选择,插入)
- Swift 基本排序算法之选择排序、插入排序与希尔排序
- 插入排序算法之移动交换法
- 排序算法之插入排序和交换排序
- 算法-基本排序:冒泡、选择、插入
- 基本排序算法(冒泡、选择、插入)
- 基本排序算法之插入排序
- 基本排序算法之插入排序
- java算法之 排序(插入、交换、选择、归并、分配排序)
- 排序算法之“选择排序-冒泡排序-插入排序”
- 基本算法之直接插入排序算法
- jquery图片轮播
- libGDX视频教程(六) -- 常用控件
- SQL 计算两个时间之差
- BIEE Admin Tool建模13条黄金规则
- Makefile经典入门
- 排序算法之基本排序算法:交换、选择、插入
- 全选、反选 不选
- 简单记录一次REDO文件损坏报错 ORA-00333重做日志读取块出错
- libGDX视频教程(七) -- 游戏音效
- Swift中文教程(九) 类与结构
- S3C6410的IROM启动模式
- PB数据窗口对象之显示样式
- Myeclipse连接mysql数据库(给力的写)全程心得)
- 关于SQLite与SQLServer的区别