基本排序和简单选择排序
来源:互联网 发布:数据分析解决方案 编辑:程序博客网 时间:2024/05/21 23:01
今年面临考验和找工作的选择,在还没下定决心之前先做二者都需要的东西,《数据结构》和英语,英语就不说了。。。。
从今天起开始复习数据结构
今天做了最简单的基本排序和增强版简单选择排序
void swap(int *a,int *b){ int c ; c= *a ; *a = *b; *b = c ;}void basisOrderUpLeft(int Arr[],int count){ int i,j; for(i=0;i<count;i++) { for(j=i;j<count;j++) { if(Arr[j]<Arr[i]) swap(&Arr[j],&Arr[i]); } } return ;}void basisOrderUpRight(int Arr[],int count){ int i,j; for(i=count-1;i>-1;i--) { for(j=i;j>-1;j--) { if(Arr[j]>Arr[i]) swap(&Arr[j],&Arr[i]); } } return ;}void basisOrderDownLeft(int Arr[],int count){ int i,j; for(i=0;i<count;i++) { for(j=i;j<count;j++) { if(Arr[j]>Arr[i]) swap(&Arr[j],&Arr[i]); } } return ;}void basisOrderDownRight(int Arr[],int count){ int i,j; for(i=count-1;i>-1;i--) { for(j=i;j>-1;j--) { if(Arr[j]<Arr[i]) swap(&Arr[i],&Arr[j]); } } return ;}
同时写了增序降序,从左从右四种组合。。可能看起来很愚笨,但是我相信量变产生质变
基本排序的思路是
找最小的放第一个,第二小的放第二个。。。
而找最小的思路就是找到小的就和现在认为最小的交换
代码风格就是两层循环同一终点,外层i值是内层循环的起点
但是频繁交换导致的就是很浪费时间(这设计底层的操作,能不交换还是尽量不交换)
所以产生了简单选择排序
void ChoiceOrder(int Arr[],int count){ int i,j,min; for(i=0;i<count;i++) { min =i; for(j=i;j<count;j++) { if(Arr[j]<Arr[min]) min = j ; } swap(&Arr[i],&Arr[min]); } return ;}
简单选择排序的特点就是找出最小的位置再交换而不是一旦找到小的就交换,所以可以节约很多时间
只要在其中加入一个min标记就可以了
今天就这样吧~
0 0
- 基本排序和简单选择排序
- java基本排序之简单选择排序
- 简单选择排序和二元选择排序
- 三 选择排序(简单选择排序和堆排序)
- 选择排序之简单选择排序和堆排序
- 简单排序:冒泡排序、选择排序和插入排序
- 起泡排序和简单选择排序小结
- 简单选择排序和冒泡排序
- php 简单冒泡排序和选择排序
- 简单选择排序和堆排序
- 简单选择排序和冒泡排序
- 冒泡排序和简单选择排序
- 冒泡排序和简单选择排序实现
- 排序 -- 简单选择排序
- 排序-简单选择排序
- 排序。。。简单选择排序
- 简单排序---选择排序
- 简单排序:选择排序
- 对LaserscanMerger::laserscan_topic_parser()的代码分析
- Android学习之路
- aop 通知
- JDBC中的Statement和PreparedStatement的区别
- Spring4与Quartz整合时找不到spring-context jar包中quoart包
- 基本排序和简单选择排序
- A视图中添加一个cell,cell继承于baseCell,baseCell上面添加一个label。点击label,让A视图中的方法响应。
- linux下安装sphinx
- leetcode-05- Longest Palindromic Substring-python
- 一句话设计模式
- 本人辛苦自创,请勿抄袭
- PL/SQL 语法知识点(待续)
- RxJava简单应用 基础篇
- CentOS7下sphinx搭建