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数据结构系列——简单排序:泡、选择、直接进入的更多相关文章

  1. JAVA数据结构系列 栈

    java数据结构系列之栈 手写栈 1.利用链表做出栈,因为栈的特殊,插入删除操作都是在栈顶进行,链表不用担心栈的长度,所以链表再合适不过了,非常好用,不过它在插入和删除元素的时候,速度比数组栈慢,因为 ...

  2. 【C#数据结构系列】排序

    一:排序 排序(Sort)是计算机程序设计中的一种重要操作,也是日常生活中经常遇到的问题.例如,字典中的单词是以字母的顺序排列,否则,使用起来非常困难.同样,存储在计算机中的数据的次序,对于处理这些数 ...

  3. Java基础系列--基础排序算法

    原创作品,可以转载,但是请标注出处地址:https://www.cnblogs.com/V1haoge/p/9082138.html 一.概述 基础排序算法包括:桶排序.冒泡排序.选择排序.插入排序等 ...

  4. (2)Java数据结构--二叉树 -和排序算法实现

    === 注释:此人博客对很多个数据结构类都有讲解-并加以实例 Java API —— ArrayList类 & Vector类 & LinkList类Java API —— BigDe ...

  5. JAVA算法之简单排序

    冒泡排序: 在概念上是排序算法中最简单的,但是运行起来非常慢,冒泡排序遵循以下几个规则(假如我们现在要给一队打乱的足球队员排序): 比较两个队员 如果左边的队员比右边的高,则交换位置 向右移动一位,比 ...

  6. Java基础系列--桶排序

    原创作品,可以转载,但是请标注出处地址:http://www.cnblogs.com/V1haoge/p/9045967.html 1.算法简介 桶排序可以算是最简单快速的排序算法了,只是限定条件要多 ...

  7. Java实现三大简单排序算法

    一.选择排序 public static void main(String[] args) { int[] nums = {1,2,8,4,6,7,3,6,4,9}; for (int i=0; i& ...

  8. java数据结构之常用排序算法

    冒泡排序 private void maopao(int arr[]) { for (int i = 0; i < arr.length; i++) { for (int j = 0; j &l ...

  9. (三)Java数据结构和算法——冒泡、选择、插入排序算法

    一.冒泡排序 冒泡算法的运作规律如下: ①.比较相邻的元素.如果第一个比第二个大,就交换他们两个. ②.对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对.这步做完后,最后的元素会是最大的数( ...

随机推荐

  1. Scala---For语句段

    For语句段 语法: Expr1 ::= „for‟ („(‟ Enumerators „)‟ | „{‟ Enumerators „}‟) {nl} [„yield‟] Expr Enumerato ...

  2. PHP情人:p十几天来学习hp第一天

    我这里是暂时的 Apache web server 和 MY SQL 如WEB,在php-4.3.3下的环境做的程序.当然要简单的构建和訪问查看数据库 PHPMYADMIN 不可少.  以下简介一下P ...

  3. String构造函数originalValue.length&gt;size 它发生

    最近观看Jdk6于String源代码被发现String这种施工方法有.源内容如下面: public String(String original) { int size = original.coun ...

  4. crm操作观点

    using System;     using Microsoft.Xrm.Sdk;     using Microsoft.Crm.Sdk.Messages; /// <summary> ...

  5. 如何更好地理解和使用Github

    只知道几乎在顶部看到一对Github用通俗易懂的解释: 你或许不懂怎样造一辆凯迪拉克,但你能够驾驶凯迪拉克. 你或许不懂Evernote是用什么技术做出来的,但你也能够使用Evernote. 你或许不 ...

  6. crm2011i创建nt类型字段

    using System;     using Microsoft.Xrm.Sdk;     using Microsoft.Xrm.Sdk.Messages;     using Microsoft ...

  7. super.getClass()与this.getClass()

    原文地址:http://leihuang.org/2014/11/14/getClass-method/ 首先看一段代码: import java.util.Date; public class Te ...

  8. 复制(5)——事务复制中的发布者(Publisher)

    发布者是所有被复制(replicated)的数据的集合.每个发布者可以有多个发布(publication),每个发布项包含多个项目(articles),但是这些发布必须处于一个单一的数据库中,而每个项 ...

  9. UVA 239 - Tempus et mobilius. Time and motion(更换周期)

    UVA 239 - Tempus et mobilius. Time and motion 题目链接 题意:这题题意也是吊得飞起,看了老半天,大概是这样: 有一个放球的队列.和3个轨道(说白了就是栈) ...

  10. 基于GeoHash算法的附近点搜索实现(一)

    1. 引入 最近在参加学校的计算机仿真大赛,时间好像有点不够,所以只完成了前面的一部分最基础的功能,中途还是选择了放弃.但是之前的部分的确觉得完成得还不错,在这里分享一下.题目是要完成一个宇宙飞船加油 ...