博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数据结构排序
阅读量:6380 次
发布时间:2019-06-23

本文共 2533 字,大约阅读时间需要 8 分钟。

插入排序

 

/**	 * 插入排序	 * 	 * @throws Exception	 */	@Test	public void tes1() throws Exception {		int[] a = { 2, 6, 1, 8, 3, 9, 5 };		for (int i = 1; i < a.length; i++) {			 System.out.print(i+"  :");			for (int j = i; j > 0; j--) {				 System.out.print(j +" ");				if (a[j] > a[j - 1]) {//					break;				} else {					int b = a[j];					a[j] = a[j - 1];					a[j-1] = b;				}			}			 System.out.println();		}				for (int i : a) {			System.out.print(i+"\t");		}	}

 

计算和------------------------public int he(int n) throws Exception {		if (n == 1) {			return 1;		}else{			return (he(n-1))+(n);		}	}斐波拉契数列---------------------------public  static int fb(int n)  {		// 1 1 2 3 5 8		if (n<3) {			return 1;		}else{			return fb(n-1)+fb(n-2);		}			}

 

== 选择排序		int[] a = { 2, 6, 1, 8, 3, 9, 5 };		for (int i = 0; i < a.length; i++) {			 System.out.print(i+"  :");			for (int j = i + 1; j < a.length; j++) {				 System.out.print(j+" ");				if (a[i] > a[j]) {					int b = a[j];					a[j] = a[i];					a[i] = b;				}			}			 System.out.println();		}		for (int i : a) {			System.out.print (i+"\t");		}

 

 

冒泡排序 ===		int[] a = { 2, 6, 1, 8, 3, 9, 5 };		for (int i = 1; i < a.length; i++) {			System.out.print(i + "\t:");			for (int j = a.length-1; j >=i; j--) {				if (a[j]

 

文件目录 递归:=====public static void tes5(File file) throws Exception {		File[] listifle = file.listFiles();		for (File file2 : listifle) {			if (file2.isDirectory()) {				System.out.println(file2.getPath());				tes5(file2);			} else {				System.out.println(file2.getName());			}		}			}

 

二分法查找: 适合有序数组-------//只适合有序数组	public static void foldfind(int[] a,int left,int right,int ren){		//求mid		int mid=(left+right)/2;		if(a[mid]==ren){			System.out.println(ren+"找到,下标是"+mid);		}else if(mid
ren){//到左边找 foldfind(a, left, mid-1, ren); }else{ System.out.println("查无此人"); } }

 

快速排序:===============public static void fastsort(int[] a, int left, int right) {		// 1、取参考值mid		int mid = a[left];		// 2、设立两个指针		int i = left, j = right;		while (i < j) {			// 3、从j开始向前找一个小于mid的数与其交换			while (i < j && a[j] >= mid) {				j--;			}			if (i < j) {// 表示找着一个小于mid数				int b = a[i];				a[i] = a[j]; 				a[j] = b;			}			// 4、从i开始向后找一个大于mid的数与其交换			while (i < j && a[i] < mid) {				i++;			}			if (i < j) {// 表示找着一个大于mid数				int b = a[i];				a[i] = a[j];				a[j] = b;			}		}		// i,j相遇,以mid为中心,左边全小,右边全大		// 左边有数,左边快速排序		if (left < i) {			fastsort(a, left, i - 1);		}		// 右边有数,右边快速排序		if (right > j) {			fastsort(a, j + 1, right);		}	}

 

转载于:https://www.cnblogs.com/rhxuza1993/p/5970584.html

你可能感兴趣的文章
阿里天猫小镇的实质就是为了圈地!
查看>>
第二代NumPy?阿里开源超大规模矩阵计算框架Mars
查看>>
字符串拼接引发的BUG
查看>>
RocketMQ源码解析:定时消息与消息重试
查看>>
Java中atomic包中的原子操作类总结
查看>>
攻击JavaWeb应用[4]-SQL注入[2]
查看>>
Android 源码分析(一)项目构建过程
查看>>
iOS 网络编程(一)TCP IP协议简介
查看>>
React在线编辑简历
查看>>
七牛大数据平台的演进
查看>>
可能是全网最全的移动直播 trouble shooting 手册(6)——马赛克严重
查看>>
iOS开发笔记(四):frame与bounds的区别详解
查看>>
iOS--collectionView简单瀑布流的实现
查看>>
我想,我需要试试
查看>>
app异常处理
查看>>
Redis 中三种特殊的数据类型
查看>>
Python篇-绘图
查看>>
Cris 的 Spark SQL 笔记
查看>>
Computer Vision 杂志对何恺明 Rethinking ImageNet Pre-training 的最新评论
查看>>
阿里云支付:可以更换绑定的支付宝账号吗?
查看>>