cqoi浅谈On2 的排序
来源:互联网 发布:swf工具 for mac 编辑:程序博客网 时间:2024/05/23 00:01
先讲一下被称做最简单的排序的地精算法
贴代码:
void gnomeSort(int n,int ar[]) //我们的地精排序{int i = 0;//辅助变量while(i < n){if(i == 0||ar[i-1]<=ar[i])//如果i-1 和 i 是正序时,地精向前走一步i++;elseswap(ar[i],ar[i-1]),i--;//如果逆序时,地精把两个数交换}}
这个其实就是大部分0n2的思想了
看看冒泡,有没有感觉很相似
冒泡:
void bubbleSort(int ar[], int n) { for (int i = 0; i < n-1; i++) //数组过一遍 { for (int j = i + 1; j < n-1; j++) { if (ar[i]>ar[j]) //逆序就交换,交换次数 == 逆序列数量 swap(i, j); } } }是不是,也是一遍一遍搜,逆序交换
下面是选择的代码,核心思想是把最小数调到前面:
void selectSort(int r[], int n){ int i,index,j,temp; for(i=1; i<n; i++) //执行i次扫描 {
index = i; for(j=i+1; j<n; j++) //比较无序数列 { if(r[index] > r[j]) //最小值扫描 { index = j; } } if(index != i) //调到队头 { temp = r[index]; r[index] = r[i]; r[i] = temp; } } }
最后一个,插入排序,也就是在数组中找A,B
使要求数C的位置是a++,b--,
代码:
void InsertionSort(int a[], int len) { for (int j=1; j<len; j++) { int key = a[j]; int i = j-1; while (i>=0 && a[i]>key) { a[i+1] = a[i]; i--; } a[i+1] = key; } }
这个不用解释吧,就是找最接近的2个数
今天就到这里
下次继续写 n log n 的,大家在见,有问题私信我
阅读全文
0 0
- cqoi浅谈On2 的排序
- VP8 第八代的On2视频
- [CQOI 2014] 排序机械臂
- java笔记on2
- 【CQOI 2016】不同的最小割
- CQOI 2017 小Q的表格
- BZOJ 3506 CQOI 2014 排序机械臂 Splay
- 浅谈排序
- 浅谈排序
- 【BZOJ 3108】【CQOI 2013】图的逆变换
- NKOJ 4038(CQOI 2017) 小Q的棋盘(贪心)
- 洛谷3698 CQOI 2017 小Q的棋盘
- Java_浅谈两种常用的排序
- [CQOI跪烂记]
- CQOI三角形
- CQOI珠宝
- CQOI矩形
- 浅谈冒泡法排序
- Rxjava2配合Retrofit加MVP
- 第7节项目5-将极坐标转换为直角坐标
- 地形建模(一)——TIN地形的生成
- 发现shell中一个有趣的现象
- linux库及静态库及动态库的创建
- cqoi浅谈On2 的排序
- VMWare安装CentOs虚拟机详细步骤
- 面向组件编程之Unity 1.怎样获取脚本所在物体的各种组件,例如:transform/BoxCollider
- 2017.12.09【NOIP提高组】模拟赛B组总结
- 图的遍历(搜索)算法(深度优先算法DFS和广度优先算法BFS)
- 人工智能十个关键词简介
- 第七次学习总结
- LOL的庆祝
- Android禁用即时运行