自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 资源 (1)
  • 收藏
  • 关注

原创 泛洪填充

/** * 泛洪填充--使用深度遍历 * @param g * @param x * @param y * @param color */ public static void floodFill(int[][] g,int x,int y,int color){ g[x][y]=color; if(x>0 && g[x-1][y]==0) floodFil

2014-09-13 22:38:44 453

原创 深度优先遍历

/** * 深度优先遍历 * @param graph * @param start */ public static void DFS(int[][] graph,int start){ BitSet flags = new BitSet(graph.length); DFSA(graph, start, flags); } private static voi

2014-09-13 22:37:26 432

原创 广度优先遍历

/** * 广度优先遍历--使用标记 * @param graph * @param start */ public static void BFS1(int[][] graph,int start){ LinkedList queue = new LinkedList(); BitSet flags = new BitSet(graph.length);

2014-09-13 22:36:40 366

原创 树形选择排序

/** * 树形选择排序 --元素要2^n个,不够补,如无穷大 * * @param a */ public static void treeSelectionSort(int[] a) { int n = (int) (Math.log(a.length) / Math.log(2)) + 1; int[][] b = new int[n + 1][]; f

2014-09-12 20:47:17 336

原创 鸽巢排序

/** * 鸽巢排序 --针对=0的数字 * * @param a */ public static void pigeonholeSort(int[] a) { int[] b = new int[100]; for (int i = 0; i < a.length; i++) { // 计数 b[a[i]]++; } int n = 0; for

2014-09-12 20:47:14 346

原创 珠排序

/** * 珠排序 --0到10的数字 * * @param a */ public static void beadSort(int[] a) { int[] b = new int[10]; // 10个串 for (int i = 0; i < a.length; i++) { // 数据分配到串 int count = 0; for (int j

2014-09-12 20:46:14 371

原创 桶排序

/** * 桶排序 * 针对<100的数,桶宽为10,桶数为10,映射函数为f(x)=x/10 * @param a */ public static void bucketSort(int[] a){ ArrayList[] buckets = new ArrayList[10]; for(int i=0;i<10;i++){ //建桶 buckets[i] =

2014-09-11 23:51:06 246

原创 基数排序

/** * 基数排序 --针对三位正整数,低位优先级低,高位优先级高 * * @param a */ public static void radixSort(int[] a) { // 基数排序用于多关键字排序,实在想不出个好场景 class WrapInt { int num; int n1; int n2; int n3; publ

2014-09-11 23:50:15 225

原创 计数排序

/** * 计数排序 --只限数字小于100且大于等于0的数组 * * @param a */ public static void countingSort(int[] a) { int[] b = new int[a.length]; int[] c = new int[100]; for (int i = 0; i < a.length; i++) { //

2014-09-11 23:48:46 203

原创 希尔排序

public static void shellSort(int[] a) { for (int gap = a.length / 2; gap > 0; gap /= 2) { // 分配步长 for (int i = 0; i < gap; i++) { // 按步长分组 for (int j = i; j < a.length; j += gap) { // 插入排序

2014-09-11 23:46:45 199

原创 插入排序

public static void insertionSort(int[] a) { for (int i = 0; i < a.length; i++) { int pos = i; for (int j = i - 1; j > -1; j--) { // 找到前面可以插入的位置 if (a[i] < a[j]) { pos = j; } }

2014-09-11 23:45:37 224

原创 归并排序

public static void mergeSort(int[] a) { mergeSortA(a, 0, a.length - 1); } private static void mergeSortA(int[] a, int begin, int end) { if (end - begin > 0) { // 分别排序 int middle = begin +

2014-09-11 23:45:36 277

原创 堆排序

public static void heapSort(int[] a) { for (int i = (a.length - 2) / 2; i >= 0; i--) { // 从最后一个非叶子节点开始初始化堆 adjustHeap(a, a.length, i); } int[] tmp = new int[a.length]; for (int i = 0; i <

2014-09-11 23:44:37 233

原创 选择排序

public static void selectionSort(int[] a) { for (int i = 0; i < a.length - 1; i++) { // 只需排前面a.length-1个 int min = i; for (int j = i + 1; j < a.length; j++) { // 从i+1个开始往后找最小的 if (a[j] < a

2014-09-11 23:41:24 238

原创 快速排序

public static void quickSort(int[] a) { quickSortA(a, 0, a.length - 1); } private static void quickSortA(int[] a, int begin, int end) { if (begin < end) { int pivot = partition(a, begin, end

2014-09-11 23:40:08 244

原创 Bogo排序

public static void bogoSort(int[] a) { Random rd = new Random(System.currentTimeMillis()); boolean ordered = false; while (!ordered) { for (int i = 0; i < a.length; i++) { // shuffle swa

2014-09-11 23:38:30 323

原创 梳排序

public static void combSort(int[] a) { int gap = a.length; boolean ordered = false; // 判断是否排好序,排好序了就结束 while (gap > 1 || !ordered) { // 按照gap不断调整 if (gap > 1) { gap /= 1.3; } ordere

2014-09-11 23:35:19 264

原创 奇偶排序

public static void oddevenSort(int[] a) { boolean ordered = false; // 判断有没有排好序 while (!ordered) { ordered = true; for (int i = 1; i < a.length - 1; i += 2) { if (a[i] > a[i + 1]) {

2014-09-11 23:33:57 207

原创 臭皮匠排序

public static void stoogeSort(int[] a) { stoogeSortA(a, 0, a.length - 1); } private static void stoogeSortA(int[] a, int i, int j) { if (a[i] > a[j]) { swap(a, i, j); } if (j - i + 1 >=

2014-09-11 23:33:51 504

原创 地精排序

public static void gnomeSort(int[] a) { int i = 1; while (i < a.length) { if (a[i] >= a[i - 1]) { i++; } else { swap(a, i, i - 1); if (i > 1) //至少2才自减,起始是1 i--; } } }

2014-09-11 23:30:24 292

原创 冒泡排序

public static void bubbleSort(int[] a) { for (int i = 0; i < a.length - 1; i++) { // 只需要把a.length-1个放到最后面 for (int j = 0; j < a.length - 1 - i; j++) { // 只需到长度a.length-1-i个 if (a[j] > a[j + 1

2014-09-11 23:27:55 240

原创 鸡尾酒排序

public static void cocktailSort(int[] a) { for (int i = 0; i < a.length / 2; i++) { // 单数时只要一半之前,双数时要一半 for (int j = i; j < a.length - i - 1; j++) { // 找最大的放后面 if (a[j] > a[j + 1]) { sw

2014-09-11 23:27:53 254

基础vbs教程

挺好的有用的vbs教程可以看看挺好的有用的vbs教程可以看看

2012-12-06

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除