沙井建网站,网站前后端分离怎么做,网站信息发布和内容建设自查报告,福田网站建设公司哪家性价比高排序算法原理与实现(java) Java程序员必知的8大排序 [来源#xff1a;本站 | 日期#xff1a;2012年12月24日 | 浏览173 次] 字体:[大 中 小] 8种排序之间的关系: 1#xff0c; 直接插入排序 (1)基本思想#xff1a;在要排序的一组数中#xff0c;假设前面(n-1)[n2] 个…排序算法原理与实现(java) Java程序员必知的8大排序 [来源本站 | 日期2012年12月24日 | 浏览173 次] 字体:[大 中 小] 8种排序之间的关系: 1 直接插入排序 (1)基本思想在要排序的一组数中假设前面(n-1)[n2] 个数已经是排 好顺序的现在要把第n个数插到前面的有序数中使得这n个数 也是排好顺序的。如此反复循环直到全部排好顺序。 (2)实例 (3) 用java实现 //从小到大 1 package com.njue; 2 3 public class insertSort { 4 public insertSort(){ 5 inta[]{49,38,65,97,76,13,27,49,78,34,12,64,5,4,62,99,98,54,56,17,18,23,34,15,35,25,53,51}; 6 int temp0; 7 for(int i1;i0j--){ //要插入的元素小于前面的元素 11 a[j1]a[j]; //将大于temp的值整体后移一个单位 12 } 13 a[j1]temp; //插入 14 } 15 for(int i0;i2i1)或(hih2i,hi2i1) (i1,2,.,n/2)时称之为堆。在这里只讨论满足前者条件的堆。由堆的定义可以看出堆顶元素(即第一个元素)必为最大项(大顶堆)。完全二叉树可以很直观地表示堆的结构。堆顶为根其它为左子树、右子树。初始时把要排序的数的序列看作是一棵顺序存储的二叉树调整它们的存储序使之成为一个堆这时堆的根节点的数最大。然后将根节点与堆的最后一个节点交换。然后对前面(n-1)个数重新调整使之成为堆。依此类推直到只有两个节点的堆并对它们作交换最后得到有n个节点的有序序列。从算法描述来看堆排序需要两个过程一是建立堆二是堆顶与堆的最后一个元素交换位置。所以堆排序有两个函数组成。一是建堆的渗透函数二是反复调用渗透函数实现排序的函数。 (2)实例 初始序列46,79,56,38,40,84 建堆 交换从堆中