堆排序:二叉树。如果按升序排列,保证父节点的值小于等于子节点的值。 堆排序证明: 1. for i=n/2 downto 1 do down(i); I.每次点i向下操作前保证:以点i的子节点为根节点的子树的所有节点满足它的值小于等于其子节点的值(如果有子节点)。 II.每次点i向下操作后保证:以点 ...
分类:
编程语言 时间:
2017-05-04 01:37:04
阅读次数:
263
1.C#堆排序代码 2.快速排序 3.冒泡排序 4.选择排序 5.二分查找 6.C#公历转农历 ...
分类:
编程语言 时间:
2017-05-03 14:28:20
阅读次数:
249
建堆,以及堆排序 代码1: #include<stdio.h> int h[101];//用来存放堆的数组 int n;//用来存储堆中元素的个数,就是堆的大小 //交换函数,用来交换堆中的俩个元素的值 void swap(int x,int y) { int t; t=h[x]; h[x]=h[y ...
分类:
编程语言 时间:
2017-05-02 13:42:42
阅读次数:
180
java 八种排序算法 阅读目录 1.直接插入排序 2.希尔排序 3.简单选择排序 4.堆排序 5.冒泡排序 6.快速排序 7.归并排序 8.基数排序 回到目录 1.直接插入排序 经常碰到这样一类排序问题:把新的数据插入到已经排好的数据列中。 将第一个数和第二个数排序,然后构成一个有序序列 将第三个 ...
分类:
编程语言 时间:
2017-04-30 14:06:04
阅读次数:
293
面试过程中。免不了会问一些比較基础的问题,而这些基础的问题肯定要说到排序上去。 我们知道。排序算法包括插入,选择,冒泡。高速,归并,堆排序等等,大多时候,我们在面试的时候,最常问的排序算法是堆,高速和归并排序,其它的几种相对简单,问的较少。那么,我们仅仅须要在面试前把它们都弄懂然后自己在纸上写出来就 ...
分类:
编程语言 时间:
2017-04-30 12:31:12
阅读次数:
181
// // <copyright file="Program.cs" company="Chimomo's Company"> // // Respect the work. // // </copyright> // <summary> // // Heap sort. // // 堆排序是一种选 ...
分类:
编程语言 时间:
2017-04-29 21:02:08
阅读次数:
275
二、选择排序?思想:每趟从待排序的记录序列中选择关键字最小的记录放置到已排序表的最前位置,直到全部排完。?关键问题:在剩余的待排序记录序列中找到最小关键码记录。?方法:–直接选择排序–堆排序 ①简单的选择排序 1、基本思想:在要排序的一组数中,选出最小的一个数与第一个位置的数交换;然后在剩下的数当中 ...
分类:
编程语言 时间:
2017-04-29 15:15:13
阅读次数:
176
总结:排序大的分类可以分为两种:内排序和外排序。在排序过程中,全部记录存放在内存,则称为内排序,如果排序过程中需要使用外存,则称为外排序。下面讲的排序都是属于内排序。 内排序有可以分为以下几类: (1)、插入排序:直接插入排序、二分法插入排序、希尔排序。 (2)、选择排序:简单选择排序、堆排序。 ( ...
分类:
编程语言 时间:
2017-04-29 15:13:49
阅读次数:
161
题目: 选择排序法的概念简单,每次从未排序部份选一最小值,插入已排序部份的后端,其时间主要花费于在整个未排序部份寻找最小值。假设能让搜寻最小值的方式加 快,选择排序法的速率也就能够加快 Heap排序法让搜寻的路径由树根至最后一个树叶,而不是整个未排序部份。从而能够加快排序的过程,因而称之为改良的选择 ...
分类:
编程语言 时间:
2017-04-29 13:45:12
阅读次数:
156
package com.hzins.suanfa; import java.util.Arrays; /** * 堆排序 * 思路,建立最大堆并把最大的数移到最后,从第一行到倒数第二行建立最大堆 * 建立最大堆: * for循环 以lastindex的父节点为起始位,每此循环自减,直到为1 * 对于... ...
分类:
编程语言 时间:
2017-04-26 22:57:17
阅读次数:
215