Java数据结构系列——简单排序:泡、选择、直接进入
package SimpleSort;
public class SimpleSort {
/**
* 冒泡排序:每次循环过程中。小的排在后面的数会像水中的
* 气泡一样慢慢往上冒,所以命名为冒泡排序了,我猜是这样子的.....
*/
public void BubbleSort(int[] array){
for(int i=0;i<array.length;i++){
for(int j=array.length-1;j>i;j--){//注意此处j是从后往前循环
if(array[j-1]>array[j]){//假设前面的数比其后面的数要大,则交换他们两个的位置
swap(array,j);
}
}
}
}
/**
* 简单选择排序:基本思想为从第一个数開始,每次选择其后面比他小
* 的最小的数与其交换位置
* @param array
*/
public void SelectSort(int[] array){
int min;
for(int i=0;i<array.length-1;i++){
min=i;
for(int j=i+1;j<=array.length-1;j++){//选择数组array中i后面的比
//array[i]小的最小的数,并将其下标保存在min中
if(array[min]>array[j]){
min=j;
}
}
if(min!=i){
swap(array,i,min);
}
}
}
/**
* 直接插入排序:直接插入排序的思想相似于我们日常生活中斗地主时不断摸牌、整理排的过程
* 后面摸上来的扑克牌我们都会依照其牌面点数从小到大的插入到相应的位置
* @param array
*/
public void InsertSort(int[] array){
int i,j,temp;
for(i=1;i<array.length;i++){
if(array[i]<array[i-1]){
temp=array[i];
for(j=i-1;j>=0&&array[j]>temp;j--){//注意不要忽略j>=0,否则肯能出现j=-1,造成数组越界
array[j+1]=array[j];
}
array[j+1]=temp;
}
}
}
//交换
public void swap(int array[],int i,int j){
int temp=array[i];
array[i]=array[j];
array[j]=temp;
}
//交换
public void swap(int array[],int j){
int temp=array[j-1];
array[j-1]=array[j];
array[j]=temp;
}
}
Java数据结构系列——简单排序:泡、选择、直接进入的更多相关文章
- JAVA数据结构系列 栈
java数据结构系列之栈 手写栈 1.利用链表做出栈,因为栈的特殊,插入删除操作都是在栈顶进行,链表不用担心栈的长度,所以链表再合适不过了,非常好用,不过它在插入和删除元素的时候,速度比数组栈慢,因为 ...
- 【C#数据结构系列】排序
一:排序 排序(Sort)是计算机程序设计中的一种重要操作,也是日常生活中经常遇到的问题.例如,字典中的单词是以字母的顺序排列,否则,使用起来非常困难.同样,存储在计算机中的数据的次序,对于处理这些数 ...
- Java基础系列--基础排序算法
原创作品,可以转载,但是请标注出处地址:https://www.cnblogs.com/V1haoge/p/9082138.html 一.概述 基础排序算法包括:桶排序.冒泡排序.选择排序.插入排序等 ...
- (2)Java数据结构--二叉树 -和排序算法实现
=== 注释:此人博客对很多个数据结构类都有讲解-并加以实例 Java API —— ArrayList类 & Vector类 & LinkList类Java API —— BigDe ...
- JAVA算法之简单排序
冒泡排序: 在概念上是排序算法中最简单的,但是运行起来非常慢,冒泡排序遵循以下几个规则(假如我们现在要给一队打乱的足球队员排序): 比较两个队员 如果左边的队员比右边的高,则交换位置 向右移动一位,比 ...
- Java基础系列--桶排序
原创作品,可以转载,但是请标注出处地址:http://www.cnblogs.com/V1haoge/p/9045967.html 1.算法简介 桶排序可以算是最简单快速的排序算法了,只是限定条件要多 ...
- Java实现三大简单排序算法
一.选择排序 public static void main(String[] args) { int[] nums = {1,2,8,4,6,7,3,6,4,9}; for (int i=0; i& ...
- java数据结构之常用排序算法
冒泡排序 private void maopao(int arr[]) { for (int i = 0; i < arr.length; i++) { for (int j = 0; j &l ...
- (三)Java数据结构和算法——冒泡、选择、插入排序算法
一.冒泡排序 冒泡算法的运作规律如下: ①.比较相邻的元素.如果第一个比第二个大,就交换他们两个. ②.对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对.这步做完后,最后的元素会是最大的数( ...
随机推荐
- 阅读<反欺骗的艺术>思考
早期接受csdn发送本书<反欺骗的艺术 ---- 传说中的黑客世界里,分享经验>. 经过这本书发生床头, 每天晚上看上.直到今天, 刚读的书. 颇有感觉. 之所以当初选择读这本书, 完全被 ...
- Android自己主动化測试——CTS測试
一.为什么须要兼容性測试(下面称CTS)? 1.1.让APP提供更好的用户体验.用户能够选择很多其它的适合自己设备的APP.让APP更稳定. 1.2.让开发人员设计更高质量的APP. 1.3.通过CT ...
- Directx11学习笔记【十四】 使用最新的Effect框架和SDK
由于之前一直在看directx11龙书学习,因此sdk一直用的Microsoft DirectX SDK (June 2010) 版本,最近在stackoverflow上问dx11相关问题时,一直被大 ...
- A ResourcePool could not acquire a resource from its primary factory or source
出处:http://aaron81939097.iteye.com/blog/1144642 原配置: <bean id="dataSource" class="c ...
- GitLab 安装配置笔记(转)
GitLab的安装方式 GitLab的两种安装方法: 编译安装 优点:可定制性强.数据库既可以选择MySQL,也可以选择PostgreSQL;服务器既可以选择Apache,也可以选择Nginx. 缺点 ...
- OA项目设计的能力③
1.然后来了一个,写在我们的主要要求之一,有回波数据还需要添加的方法,我们需要知道,事实上,页被传递id演出id通讯实体name,所以想要回显就是须要得到privilegeIds,假设像上一篇在jsp ...
- mysql1130远程连接没有权限解决方法
原因擅自在两个远程连接,一种是由于mysql限制,一个是防火墙限制. 1,解决防火墙限制: 于mysql服务主机将关闭防火墙,或者在防火墙高级设置这增加了入站和出站规则,加号mysql的port.同意 ...
- ios save image to album
- (void)savePhotoToAlbum { ZoomScrollView *zoomScrollView = (ZoomScrollView*)[self.scrollView viewWi ...
- arcgis,mapinfo(mapxtreme),openlayers专业GIS系统开发
专业从事基于C#,WinForm ,WPF,Silverlight,WCF以及MS Sql Server 2000/2005/2008/2012 Oracle 9i/10g/11g数据库系统的ERP, ...
- ipad pro注定是失败的!
ipad pro注定是失败的! 把一个玩具操作系统装在生产力工具上就能产生生产力了? so young so simple!