/* 快速排序法二 说明: 在快速排序法(一)中,每次将最左边的元素设为轴,而之前曾经说过,快速排序法的加速在于轴的选择,在这个例子中,只将轴设 定为中间的元素,依这个元素作基准进行比较,这可…
分类:经典算法问题
【快速排序法一】
/* 快速排序法 说明: 快速排序法(quick sort)是目前所公认最快的排序方法之一(视解题的对象而定),虽然快速排序法在最差状况下可以达O(n 2 ) ,但是在多数的情况下,快速排序法…
【合并排序法】
/* 合并排序法 */ #include <stdio.h> #include <stdlib.h> #include <time.h> #define MAX1 10 …
【循环搜寻法(使用卫兵)】
/* 循环搜寻法(使用卫兵) 说明: 搜寻的目的,是在「已排序的资料」中寻找指定的资料,而当中循序搜寻是最基本的搜寻法,只要从资料开头寻找到最后,看看是 否找到资料即可。 解法: 初学者看到循序搜寻,多数都…
【二分查找法(折半查找法)】
/*二分查找法 说明: 如果搜寻的数列已经有排序,应该尽量利用它们已排序的特性,以减少搜寻比对的次数 ,这是搜寻的基本原则,二分搜寻法是这个基本原则的代表。 解法: 在二分搜寻法中,从数列的中间开始搜寻,如…
【2(2N+1)魔方阵 】
/* 2(2N+1)魔方阵 */ #include<stdio.h> #include<stdlib.h> #define N 6 #define SWAP(x, y) {int t…
【4N魔方阵】
/* 4N魔方阵 */ #include<stdio.h> #include<stdlib.h> #define N 8 int main(void){ int i, …
【奇数魔方阵】
/* 奇数魔方阵 */ #include<stdio.h> #include<stdlib.h> #define N 5 int main(void){ int i, …
【上三角下三角对称矩阵】
/*上三角下三角对称矩阵 说明: 上三角矩阵是矩阵在对角线以下的元素均为0,即A ij = 0,i > j,例如: 1 2 3 4 5 0 6 7 8 9 0 0 10 11 12 0 …
【多维矩阵转一维矩阵 】
/* 多维矩阵转一维矩阵 说明: 有的时候,为了运算方便或资料储存的空间问题,使用一维阵列会比二维或多维阵列来得方 便 ,例如上三角矩阵、下三角矩阵或对 角矩阵,使用一维阵列会比使用二维阵列来…
【稀疏矩阵】
/* 稀疏矩阵 说明: 如果在矩阵中,多数的元素并没有资料,称此矩阵为稀疏矩阵(sparse matrix ), 由于矩阵在程式中常使用二维阵列表示,二维 阵列的大小与使用的记忆体空间成正比,…
【老鼠走迷宫二】
/* 老鼠走迷宫二 有问题 */ #include <stdio.h> #include <stdlib.h> void visit(int ,int); int maze[9][9…