总共有八种排序算法,还是慢慢看吧

1、简单排序算法

简单排序算法就是设置标兵,逐个比较数,然后查找插入位置,插入

public static void p(int[] a){for(int i=0;i<a.length;i++){System.out.print(a[i]+" ");}}public static void sorting(int[] a){int m =a.length;for(int i=1;i<m;i++){if(i==1){if(a[i]<a[i-1]){int temp = a[i];a[i] = a[i-1];a[i-1] =temp;}}else{if(a[i]<a[i-1]){int j=i-1;int x=a[i];             //设置x为标兵//a[i]=a[i-1];//System.out.println(a[j]);  while(x<a[j]){           //查找位置,逐个比较大小a[j+1]=a[j];     //向后移一位    j--;             p(a);System.out.println();}a[j+1]=x;          //插入}}}}

2、希尔排序算法

希尔排序算法,也算是直接插入排序的升级版。

算法思想:先将整个待排的记录序列分割成若干个子序列分别进行直接插入排序,待整个序列中的记录“基本有序”时,再对全体记录进行一次直接插入排序。

操作方法:

  1. 选择一个增量序列dk1,dk2,…,dkn,其中ti>tj,dkn=1,dk=n/2;
  2. 按增量序列个数k,对序列进行k 趟排序;
  3. 每趟排序,根据对应的增量dk,将待排序列分割成若干长度为m 的子序列,分别对各子表进行直接插入排序。仅增量因子为1 时,整个序列作为一个表来处理,表长度即为整个序列的长度。
public static void Shell(int[] a,int n,int dk){for(int i=dk;i<n;i++){int j=i-dk;int x=a[i];if(a[j]>x){a[j+dk] = a[j];j-=dk;}a[j+dk]=x;}}public static void Shell(int[] a){int n=a.length;int dk = n/2;while(dk>=1){Shell(a,n,dk);dk=dk/2;}}

输出函数

public static void p(int[] a){for(int i=0;i<a.length;i++){if(i==0){if(a[i+1]<a[i]){int temp = a[i+1];a[i+1] = a[i];a[i] =temp;}}System.out.print(a[i] + " ");}System.out.println();}

转载于:https://www.cnblogs.com/zrlhss/p/4022503.html

简单排序算法设计(Java)相关推荐

  1. 简单排序算法(Java实现)

    简单排序算法:冒泡排序,选择排序,插入排序 一.冒泡排序 1.1 原理: 从第一个数据开始,与第二个数据相比较,如果第二个数据小于第一个数据,则交换两个数据的位置 指针由第一个数据移向第二个数据,第二 ...

  2. 几种简单的排序算法(JAVA)

    几种排序算法(JAVA) 一.代码 package com.hdwang;import java.util.Arrays;/*** Created by admin on 2017/1/20.*/ p ...

  3. java 3 9 2 6数字排序_GitHub - JourWon/sort-algorithm: 史上最全经典排序算法总结(Java实现)...

    史上最全经典排序算法总结(Java实现) 查找和排序算法是算法的入门知识,其经典思想可以用于很多算法当中.因为其实现代码较短,应用较常见.所以在面试中经常会问到排序算法及其相关的问题.但万变不离其宗, ...

  4. 十大排序算法(Java)

    文章目录 十大排序算法(Java) 一.冒泡排序(Bubble Sort) 二.选择排序(Selection Sort) 三.堆排序(Heap Sort) 四.插入排序(Insertion Sort) ...

  5. python sort 部分元素_Python 简单排序算法-选择、冒泡、插入排序实现

    写文章主要是记录自己每天学习的东西,本篇文章主要介绍数据结构中常用的简单的排序算法,虽然这些算法用Python实现起来不是十分的高效,不如c.java之类的运行速度快,应用Python实现主要是为了: ...

  6. 经典排序算法(Java版)

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 经典排序 ...

  7. 【简单排序算法】:简单选择排序、直接插入排序和冒泡排序

    [简单排序算法]:简单选择排序.直接插入排序和冒泡排序 简单选择排序: 原理:设所排序序列的记录个数为n.i取1,2,-,n-1,每次从所有n-i+1个记录(Ri,Ri+1,-,Rn)中找出最小的记录 ...

  8. 纸牌游戏洗牌发牌排序算法设计

    纸牌游戏洗牌发牌排序算法设计 本文提供纸牌游戏设计制作的基础部分,即洗牌,发牌,牌张排序排列显示的算法. 以及游戏开始时间使用时间的显示.我是用简单的C语言编译器MySpringC在安卓手机上编写的. ...

  9. 简单排序算法时间空间复杂度分析及应用(4)-二分插入排序

    简单排序算法时间空间复杂度分析及应用(4)-二分插入排序 背景: 顾名思义,这个二分插入排序是直接插入排序的进化版,主要变化的地方就是在内循环部分,即外循环的循环节点在确定区域的位置查询方式由原来的直 ...

最新文章

  1. 那个专攻JVM的00后求职者,薪水比我的还高···
  2. portlet java_探秘企业门户开发:Java Portlet入门(2)
  3. java adt怎么打开项目,如何在Eclipse中打开Android Studio项目?
  4. MATLAB从入门到精通-新增返回数组高、宽数字特征的全新方式
  5. 【NOIP2013模拟9.29】密码
  6. P5887-Ringed Genesis【GCD】
  7. TCP解决粘包问题(结构数据封包拆包)
  8. 盘点大数据的十大发展方向,Scale-out将成主流
  9. Ubuntu下安装配置JDK1.7
  10. 最后一公里极速配送 - 阿里云算法大赛总结
  11. java线程创建销毁_c++多线程的创建挂起执行与销毁
  12. mysql常用的一些命令,用于查看数据库、表、字段编码
  13. oracle常见异常——io异常,connection reset
  14. ios百度地图开发之路径规划
  15. 【小镇的技术天梯】黑客技术(1) MITM-中间人攻击
  16. Gluster文件系统
  17. 嵌入式RTOS的 任务栈 和 系统栈
  18. html中js计算百钱百鸡,JS经典案例之百钱百鸡
  19. 【SpringBoot】SpringBoot常用注解
  20. 用户关闭页面前提示,提醒保存内容 Window 的 unload onunload onbeforeunload 事件

热门文章

  1. 机器学习笔记(十三):降维
  2. 在Ubuntu上安装Keras深度学习框架
  3. 2.Building Models from Convolutions
  4. 4.Model Validation
  5. npm安装与卸载和cordova及ionic项目打包调试等相关命令总结归纳
  6. c语言折半查找输出坐标,数据结构(C语言版)——有序表查找(折半查找)(代码版)...
  7. leetcode1491. 工资平均值 这也叫题?也太简单了吧
  8. leetcode892. 三维形体的表面积
  9. (多线程)leetcode1114. 按序打印 认识AtomicInteger
  10. (十二)深入浅出TCPIP之Nagle算法