好几天又没写,因为这几天很闲,平时忙的时候自己再累都不会睡着,但是呢这没事了,照理说应该是不瞌睡了,结果还睡着了。

所以说,人很贱。也验证了一句话,没有目标的人其实最无聊。人一定要有自己的工作,这工作部限于朝九晚五的工作,像家庭主妇也可以是工作,总之要有目标,如果没有,我想人会发疯的。当然休息的时候另外。废话到此。

简单排序包括:冒泡,选择,插入三种。

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;
}
}
}

  

  

  

《java数据结构与算法》系列之“简单排序"-冒泡,选择,插入的更多相关文章

  1. python 数据结构与算法之排序(冒泡,选择,插入)

    目录 数据结构与算法之排序(冒泡,选择,插入) 为什么学习数据结构与算法: 数据结构与算法: 算法: 数据结构 冒泡排序法 选择排序法 插入排序法 数据结构与算法之排序(冒泡,选择,插入) 为什么学习 ...

  2. 9, java数据结构和算法: 直接插入排序, 希尔排序, 简单选择排序, 堆排序, 冒泡排序,快速排序, 归并排序, 基数排序的分析和代码实现

    内部排序: 就是使用内存空间来排序 外部排序: 就是数据量很大,需要借助外部存储(文件)来排序. 直接上代码: package com.lvcai; public class Sort { publi ...

  3. 基本排序-冒泡/选择/插入(python)

    # -*- coding: utf-8 -*- import random def bubble_sort(seq): n = len(seq) for i in range(n-1): print( ...

  4. Java数据结构和算法 - 简单排序

    Q: 冒泡排序? A: 1) 比较相邻的元素.如果第一个比第二个大,就交换它们两个; 2) 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对.在这一点,最后的元素应该会是最大的数; 3) 针 ...

  5. Java数据结构和算法(九)——高级排序

    春晚好看吗?不存在的!!! 在Java数据结构和算法(三)——冒泡.选择.插入排序算法中我们介绍了三种简单的排序算法,它们的时间复杂度大O表示法都是O(N2),如果数据量少,我们还能忍受,但是数据量大 ...

  6. Java数据结构和算法 - 高级排序

    希尔排序 Q: 什么是希尔排序? A: 希尔排序因计算机科学家Donald L.Shell而得名,他在1959年发现了希尔排序算法. A: 希尔排序基于插入排序,但是增加了一个新的特性,大大地提高了插 ...

  7. Java数据结构和算法(五)--希尔排序和快速排序

    在前面复习了三个简单排序Java数据结构和算法(三)--三大排序--冒泡.选择.插入排序,属于算法的基础,但是效率是偏低的,所以现在 学习高级排序 插入排序存在的问题: 插入排序在逻辑把数据分为两部分 ...

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

    三大排序在我们刚开始学习编程的时候就接触过,也是刚开始工作笔试会遇到的,后续也会学习希尔.快速排序,这里顺便复习一下 冒泡排序: 步骤: 1.从首位开始,比较首位和右边的索引 2.如果当前位置比右边的 ...

  9. 数据结构与算法系列2 线性表 使用java实现动态数组+ArrayList源码详解

    数据结构与算法系列2 线性表 使用java实现动态数组+ArrayList源码详解 对数组有不了解的可以先看看我的另一篇文章,那篇文章对数组有很多详细的解析,而本篇文章则着重讲动态数组,另一篇文章链接 ...

随机推荐

  1. MySQL多表连接操作

    select * from userinfo ,dapartment where userinfo.part_id = dapartment.id; --左连接: 左边全部显示 select * fr ...

  2. Django settings.py的一些配置

    官方文档:settings配置 静态文件配置链接 # 语言改为中文: LANGUAGE_CODE = "zh-hans" # 时区由UTC改为Asia/Shanghai,这样有关时 ...

  3. VMware Workstation搭建Linux操作系统

    1.单击“创建新的虚拟机”选项,并在弹出的“新建虚拟机向导”界面中选择“自定义”单选按钮,然后单击“下一步”. 新建虚拟机向导 2.选择虚拟机硬件兼容性,是否兼容之前旧的版本. 兼容性选择 3.选中“ ...

  4. 分布式服务框架Dubbo入门案例和项目源码

    本项目源代码:http://download.csdn.net/detail/fansunion/9498406 Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案, 是 ...

  5. python爬虫数据解析的四种不同选择器Xpath,Beautiful Soup,pyquery,re

    这里主要是做一个关于数据爬取以后的数据解析功能的整合,方便查阅,以防混淆 主要讲到的技术有Xpath,BeautifulSoup,PyQuery,re(正则) 首先举出两个作示例的代码,方便后面举例 ...

  6. play snake on windows

    今天和人吃晚饭突然想起来 之前西佳佳老师说小学期会要求两星期撸一个小游戏 有人已经撸完一个俄罗斯方块了... 菜逼我决定从最简单的贪吃蛇玩起... 我是直接参考的这个博客 算是相当简单而且很Low的实 ...

  7. assign retain 和copy的区别

    assign 对基础数据类型 (NSInteger,CGFloat)和C数据类型(int, float, double, char)等 等. 此标记说明设置器直接进⾏行赋值,这也是默认值.在使⽤用垃圾 ...

  8. F2BPM 开发Api与RESTfull应用服务Api 层次关系及示例

    目前越来越多的企业架构解决方案更加趋向于基于http协议“微服务”访问跨系统调用,而不使用统传的WebService调用,即通过RESTfull方式进行交互,更加轻量整合调用更加方便.本文档中所有F2 ...

  9. [Cocos2d-x v3.x]Mac OX 创建新的Cocos2d-x 3.0 项目

    文章内容来自于: http://cocos2d-x.org/wiki/How_to_Start_A_New_Cocos2D-X_Game Mac OS X 10.9 Software Requirem ...

  10. 本地项目上传虚拟机的gitlab

    前提:在虚拟机安装了gitlab服务,并且本机可以访问到虚拟机的gitlab 自己本机项目上传到gitlab 1.先在gitlab上建立项目 拷贝项目地址: http://192.168.1.105/ ...