当前位置: 首页 > news >正文

电子类网站模板网站建设技术课程设计

电子类网站模板,网站建设技术课程设计,在线编辑图片加字,公司内部网站建设目录 排序的概念 插入排序 直接插入排序 哈希排序 排序的概念 排序#xff1a;所谓的排序#xff0c;就是使一串记录#xff0c;按照某个或某些关键字的大小#xff0c;递增或递减的排列起来的操作。 稳定性#xff1a;假定在待排序的记录序列中#xff0c;存在多个…目录 排序的概念 插入排序 直接插入排序 哈希排序 排序的概念 排序所谓的排序就是使一串记录按照某个或某些关键字的大小递增或递减的排列起来的操作。 稳定性假定在待排序的记录序列中存在多个具有相同的关键字的记录若经过排序这些记录的相对次序保持不变即在原序列中r[i]r[j]且r[i]在r[j]之前而在排序后的序列中r[i]仍在r[j]之前则称这种排序算法是稳 定的否则称为不稳定的。 常见的排序算法有下面四种 插入排序直接插入排序希尔排序选择排序选择排序堆排序交换排序冒泡排序快速排序归并排序归并排序 这里主要介绍Java如何实现插入排序中的直接排序和希尔排序。 插入排序 基本思想把待排序的记录按照其关键码值的大小逐个插入到一个已经拍好的有序序列中直到所有的记录插入完为止得到一个新的有序序列。生活中的例子就像我们在完扑克牌的时候机型排序一样。 直接插入排序 思路 直接插入排序的过程就像是有一组无序数据用第二个元素先和第一个元素比较如果第一个元素比第二个元素大那么二者就交换位置否则继续往后推随着往后推每一次前一个元素都要不断和之前排序过的元素进行比较。 Sort类 public class Sort {/*** 时间复杂度O(N^2)* 空间复杂度O(1)* 稳定性稳定的排序* param array*///直接插入排序public static void insertSort(int[] arr){for (int i 1; i arr.length; i) {int tmp arr[i];int j i-1;for (; j 0; j--) {if(arr[j] tmp){arr[j1] arr[j];}else{arr[j1] tmp;break;}}//确保j位置的数也就是前一个数能换位成功arr[j1] tmp;}} } Test类 测试类 public class Test {public static void main(String[] args) {int[] arr {12,6,59,45,73,26,2};System.out.println(排序前 Arrays.toString(arr));Sort.insertSort(arr);System.out.println(排序前 Arrays.toString(arr));} }输出结果为 关于i1且i arr.length思路因为数组是从0开始的所以arr[6]的位置刚好是最后一位。 通过上面的动图我们不难发现如果数组一开始越有序直接插入排序的效率越高这也为下面的哈希排序提供了思路。 稳定性 直接插入排序是稳定的由上面图片能看到它是具有稳定性的但如果是代码部分的 arr[j] tmp 改为arr[j]   tmp以上面的2a和2b为例它们的顺序就会发生变化。那么这还能说直接插入排序是稳定的吗 当然能因为 本身是一个稳定的排序那么可以实现为不稳定的。 但是如果一个排序 本身是不稳定的那就不能实现稳定的排序。 哈希排序 哈希排序可以看作是直接插入排序的优化先通过 gap来不断简化 其中的有序性然后再用直接插入排序越有序直接插入排序的时间复杂度越小速度越快。 通过间隔分为不同的组组内进行排序然后再缩短gap来进行再次排序。 代码为 public static void shellInsert(int[] array){int gap array.length;while(gap 1){gap / 2;shell(array, gap);} }private static void shell(int[] array, int gap) {for (int i gap; i array.length; i) {int tmp array[i];int j i-gap;for (; j 0; j- gap) {if(array[j] tmp){array[jgap] array[j];}else{array[jgap] tmp;break;}}array[jgap] tmp;} } 到这里插入排序中的直接插入排序和希尔排序就结束了接下来我会继续给出剩下排序的思路和代码。
http://www.hkea.cn/news/14326573/

相关文章:

  • 广州外贸网站信息黑龙江恒泰建设集团网站
  • 4昌平区网站建设郑州便宜网站建设报价
  • 找外包网站 和自己做群晖wordpress怎么用
  • 济南川芎网站建设公司网站设计一年费用
  • 工程公司手机网站网站推广效果怎么样
  • 网站外链怎么发布网站查询平台
  • 南京好的网站设计网页制作啥专业
  • 云尚网络科技有限公司网站建设成都设计公司logo
  • 专业格泰建站app网站下载免费
  • 福田网站设计处理二级域名子域名大全
  • 傻瓜式自助建站系统想做网站的公司好
  • 上海网站建设免石家庄怎样做网站
  • 适合高中生做网站的主题快速网站模板公司
  • 企业网站.net工业信息化部网站备案
  • 网上服装定制网站wordpress访问权限插件
  • 电影网站建设步骤产品的推广及宣传思路
  • 朝阳网站建设 国展淘宝网客网站建设
  • 宣城市建设监督管理局网站网站建设分析书引言
  • 网站内容设置灯塔网站制作公司
  • 做查询系统网站专业定制网站制作公司
  • 成都 视频网站建设移动网站建设指南
  • 手机网站用什么后台国内哪个网站用wordpress
  • 网站部分网页乱码苏州网站的优化
  • 帝国cms调用网站地址国家高新技术企业难吗
  • 重庆八大员报名入口官网seo优化推广技巧
  • 一家只做t恤的网站做网站卖什么软件
  • 打开官方网站网站开发系统调研目的
  • 邢台城乡建设局网站衡阳网页设计
  • 可以做四级的网站wordpress用户中心代码
  • 网站tkd优化线上营销的优势和劣势