《java数据结构与算法》系列之“简单排序"-冒泡,选择,插入
2024-08-23 12:20:36
好几天又没写,因为这几天很闲,平时忙的时候自己再累都不会睡着,但是呢这没事了,照理说应该是不瞌睡了,结果还睡着了。
所以说,人很贱。也验证了一句话,没有目标的人其实最无聊。人一定要有自己的工作,这工作部限于朝九晚五的工作,像家庭主妇也可以是工作,总之要有目标,如果没有,我想人会发疯的。当然休息的时候另外。废话到此。
简单排序包括:冒泡,选择,插入三种。
1:冒泡排序:
原理:从上到下,对每一对相邻的数进行比较,直到最大的数或最小的数字飘到最上面。
int a[] = {1,26,6,12,8,15} ;//初始数组
int temp ;
for(int i =0 ; i < a.length -1 ; i ++ )
{
for(int j=0 ; j < a.length -1 -i ; j++ )
{
//每次一轮缩掉一个比较的数,即轮数是这样的:外层循环总5轮(数组的个数-1)
1和2,2和3,3和4,4和5,5和6 第一轮
1和2,2和3,3和4,4和5 第二轮
1和2,2和3,3和4 第三轮
1和2,2和3 第四轮
1和2 第五轮
if(a[j]>a[j+1])//从大到小排列
{ temp = a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
2:选择排序:
原理:每一轮选择一个最小或大的书放在数列的最开头,然后对剩下的数依次取一个最大或小的数放在之前那个数列的后面,依次类推。
int a[] = {1,26,6,12,8,15} ;//初始数组
int temp ;
for(int i =0 ; i < a.length -1 ; i ++ )
{
for(int j=i+1 ; j < a.length ; j++ )
{
//每次一轮去掉一个最小或大的数,即轮数是这样的:外层循环总5轮(数组的个数-1)
1和2,1和3,1和4,1和5,1和6 第一轮
2和3,2和4,2和5,2和6 第二轮 去掉1
3和4,3和5,3和6 第三轮 去掉2
4和5,4和6 第四轮 去掉3
5和6 第五轮 去掉4
if(a[j]>a[j+1])//从大到小排列
{ temp = a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
3:插入排序:
原理:从第一个数字开始,下一个数字依次与前面已经排好的所有数字依次比较并排序即插入到前面已经排好序的里面,第一个数字假定是已经排好了的数字。
int a[] = {1,26,6,12,8,15} ;//初始数组
int temp ;
////算法:2与1比较,排好1和2
// 3与2比较,3与1比较 排好1,2,3
// 4与3比较,4与2比较,4月1比较 拍好1,2,3,4
// 5和4,5和3,5和2,5和1 拍好1,2,3,4,5
// 6和5,6和4,6和3,6和2,6和1 完成排序。 拍好1,2,3,4,5,6
for(int i=1; i <a.length ; i++){ i控制2,3,4,5,6
for( int j =1; j < i+1 ; j++){ j控制1,1和2,1和2和3,1和2和3和4,1和2和3和4和5
if(a[i]>a[j-1]){
temp=a[i];
a[i]=a[j-1];
a[j-1]=temp;
}
}
}
最新文章
- 《3D Math Primer for Graphics and Game Development》读书笔记2
- 电子商务中:B2C、B2B、C2B、C2C、O2O、P2P
- Microsoft ACE OLEDB 12.0概念及用法
- 记一次w3wp占用CPU过高的解决过程(Dictionary和线程安全)
- Android异常一、异步任务导致的窗口句柄泄漏问题(转)
- Maven安装testNG
- 使用sqlite的命令操作
- 想弄清楚LIBEVENT和EPOLL之类的关系,不要因为走得太急而迷失了方向
- WiFi无线模块学习1——HLK-M30使用
- 大陆用户如何下载Google Play中的apk文件
- oracle AWR深入研究分析,如何使用
- mcrypt.h not found. Please reinstall libmcrypt
- Linux cat和EOF的使用
- BZOJ 3368 约翰看山(扫描)O(N)
- Ini文件操作类
- JVM性能调优,GC
- 【笔记】Python基础五:装饰器
- popupWindow设置后完美解决返回键响应无效的方案以及popupWindow背景透明方案
- 快播王欣发布匿名IM社交软件“马桶MT”
- MySQL 全局锁、表锁以及行锁
热门文章
- Maximum Value(unique函数,lower_bound()函数,upper_bound()函数的使用)
- 使用IDM下载软件下载百度云网盘里的资源,以Chrome浏览器为例
- python爬虫20 | 小帅b教你如何使用python识别图片验证码
- vs2015 配置 cplex
- go 语言优势
- nyoj 306 二分+dfs
- 【ACM】nyoj_47_过桥问题_201308151616
- [bzoj2086][Poi2010]Blocks_单调栈_双指针
- Performance Metrics(性能指标1)
- 树剖LCA讲解