输入待排序序列:49 38 65 97 13 27 49(以输入一个字符作为结束) 1) 直接插入排序运行结果(写出每一趟的状态): 2)堆排序运行结果(写出每一趟的状态): ...
分类:
其他好文 时间:
2018-12-11 21:55:02
阅读次数:
378
堆是一种类似二叉树的数据结构,分为最大堆和最小堆,最大堆得定义是当前节点必须大于左右子节点,堆中所有节点都要符合这个定义。最小堆反之。这一点不同于二叉树排序。假设有数组int a[10] = {90,45,21,43,22,77,13,89,56,84},根据最大堆来初始化数组 最大堆初始化代码思路 ...
分类:
编程语言 时间:
2018-12-11 18:15:18
阅读次数:
230
堆排序 一、概述 首先我们来看看什么叫做堆排序? 若在输出堆顶的最小值之后,使得剩余的n 1个元素的序列重新又构成一个堆,则得到n个元素中的次小值,如此反复,便能得到一个有序序列,称这个过程为堆排序。 再来看看总结一下基本思想: 1. 将无序序列建成一个堆 2. 输出堆顶的最小(大)值 3. 使剩余 ...
分类:
编程语言 时间:
2018-12-11 11:16:53
阅读次数:
224
初期: 一、基本算法: (1)枚举(poj1753,poj2965) (2)贪心(poj1328,poj2109,poj2586) (3)递归和分治法 (4)递推 (5)构造法(poj3295)(这种东西真的只是靠智商) (6)模拟法(poj1068,poj2632,poj1573,poj2993, ...
分类:
其他好文 时间:
2018-12-11 01:42:11
阅读次数:
239
public static void swap(int[] arr, int i, int j) { int tmp = arr[i]; arr[i] = arr[j]; arr[j] = tmp; } public static void heapInsert(int[] arr, int ind... ...
分类:
编程语言 时间:
2018-12-09 22:36:47
阅读次数:
200
20172318 2017 2018 2 《程序设计与数据结构》实验3报告 课程:《程序设计与数据结构》 班级: 1723 姓名: 陆大岳 学号:20172318 实验教师:王志强 实验日期:2018年11月19日 必修/选修: 必修 1.实验内容 实验三 查找与排序 1 定义一个Searching ...
分类:
其他好文 时间:
2018-12-09 20:08:08
阅读次数:
180
#include<stdio.h>#include<stdlib.h> void swap(int *array,int a,int b){ int temp; temp = array[a]; array[a] = array[b]; array[b] = temp;} void heap_adj ...
分类:
编程语言 时间:
2018-12-08 19:12:12
阅读次数:
194
笔者在学习数据结构与算法时,尝试着将排序算法以动画的形式呈现出来更加方便理解记忆,本文配合Demo 在Object-C中学习数据结构与算法之排序算法阅读更佳。 目录 选择排序 冒泡排序 插入排序 快速排序 双路快速排序 三路快速排序 堆排序 总结与收获 参考与阅读 选择排序 选择排序是一种简单直观的 ...
分类:
编程语言 时间:
2018-12-05 20:33:04
阅读次数:
140
引言 - 数据结构堆 堆结构都很耳熟, 从堆排序到优先级队列, 我们总会看见它的身影. 相关的资料太多了, 堆 - https://zh.wikipedia.org/wiki/%E5%A0%86%E7%A9%8D 无数漂亮的图片接二连三, 但目前没搜到一个工程中可以舒服用的代码库. 本文由此痛点而来 ...
分类:
其他好文 时间:
2018-12-05 13:21:46
阅读次数:
135
#include //向下调整 void HeapAdjust(int A[], int low, int high){ int i, temp = A[low]; for(i = low * 2; i 0; i--) HeapAdjust(A, i, n); //将最大值放至数组末端 for(i ... ...
分类:
编程语言 时间:
2018-12-04 01:02:10
阅读次数:
192