
算法导论
markliwei1
苦逼的通信研究生
展开
-
Algorithm-1.1课后习题
这是《算法》一书中课后习题1.1.13的习题 编写一段代码,打印一个M*N的二维数组的转置 这里涉及到的几个知识点 1. 二维数组的定义,示例如主函数中的arr二维数组定义并将其初始化变量类型[][] 变量名 = new 变量类型[][]; example1: int[][] arr =new int[][]{ {1,2,3},原创 2017-08-20 16:25:35 · 314 阅读 · 0 评论 -
Merge
方案一: class Merge { public static void main(String[] args) { int[] a = new int[]{3,44,38,5,47,15,36,26,27,2,46,4,19,50,48}; int[] temp = new int[a.length]; int mid = (a.l原创 2017-09-23 16:31:57 · 201 阅读 · 0 评论 -
MergeSort
class Merge { private static int[] aux;//定义一个数组用于存储归并时存储原数组 public static void sort(int[] a) { aux = new int[a.length];//将数组aux的长度定义为与原数组的长度是一样的 sort(a ,0, a.length-1);//将原数原创 2017-09-23 22:34:51 · 206 阅读 · 0 评论 -
BubbleSort
冒泡算法的核心是相邻的两个元素进行比较,如果左边的数比右边的数要大,则利用一个exch()方法交换两个元素,并且利用一个标识符swap=true,表示数组中的元素仍没有排好序。利用一个for循环进行遍历比较相邻的两个元素。直到数组中是一个有序数组–等价于swap = false。class BubbleSort { public static void main(String[] args原创 2017-09-22 16:52:47 · 271 阅读 · 0 评论 -
SelectionSort
选择排序的核心思想每一次循环将最小的那个数找出来放在右边,首先将数组中的元素都比较一遍,记录下较小的元素的小标,然后将改下标与随后的元素进行相比,最后交换第一各元素和最小元素的下标的值。class SelectionSort { public static void main(String[] args) { int[] a = new int[]{1,5,2,6原创 2017-09-22 17:05:21 · 174 阅读 · 0 评论 -
树的遍历-前序、中序、后序
一、前序遍历 1.1、前序遍历递归版本 1.2、前序遍历非递归版本 二、中许遍历 2.1、中序遍历递归版本 2.2、中序遍非递归版本 三、后序遍历 3.1、后序遍历递归版本 3.2、后序遍历非递归版本 一、前序遍历 1.1、前序遍历递归版本 private void preOrder(ListNode node) { ...原创 2018-08-24 14:55:53 · 260 阅读 · 0 评论