好久没写了,是啊!好长时间了,那今天来点干货吧!(或许太简单了),笔者是有点忘记,又拿出来写了一遍,也就凑合看下吧!
一些关于数组基本的排序,反转等,写的不全啊,是啊,脑子记不住了
package com.wanghang.sort;
import java.util.Arrays;
import java.util.Random;
/**
* 排序等
*
* @author Hang.W
* @version 1.0, 2017-01-23 11:30:53
*/
public class Sort {
public static void main(String[] args) {
int[] arr = {9, 7, 5, 3, 1, 8, 6, 4, 2, 0};
bubbleSort(arr);
System.out.println("冒泡法:" + Arrays.toString(arr));
reverse(arr);
System.out.println("反 转:" + Arrays.toString(arr));
insertSort(arr);
System.out.println("插入法:" + Arrays.toString(arr));
shuffle(arr);
System.out.println("洗牌法:" + Arrays.toString(arr));
printDiamond();
printTriangle(6);
String new_str = reverse("Monkey D Luffy");
System.out.println("反转后的字符串:" + new_str);
}
/**
* 冒泡排序
*
* @param arr 待排序的数组
*/
public static void bubbleSort(int[] arr) {
for (int i = 0; i < arr.length - 1; i++) {
for (int j = 0; j < arr.length - i - 1; j++) {
if(arr[j] > arr[j + 1]) {
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
/**
* 插入排序
*
* @param arr
*/
public static void insertSort(int[] arr) {
for (int i = 1; i < arr.length; i++) {
for (int j = i - 1; j >= 0 && arr[j] > arr[j + 1]; j--) {
int temp = arr[j + 1];
arr[j + 1] = arr[j];
arr[j] = temp;
}
}
}
/**
* 洗牌法
*
* @param arr
*/
public static void shuffle(int[] arr) {
Random random = new Random();
for(int i = arr.length - 1; i >= 1; i--) {
int j = random.nextInt(i);
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
/**
* 数组反转
*
* @param arr
*/
public static void reverse(int[] arr) {
for(int start = 0, end = arr.length - 1; start < end; start++, end--) {
int temp = arr[start];
arr[start] = arr[end];
arr[end] = temp;
}
}
/**
* 菱形
*/
public static void printDiamond() {
// 打印4行
for (int y = 1; y <= 4; y++) {
// 每行开头空格
for(int x = 1; x <= 4 - y; x++) {
System.out.print(" ");
}
// 空格后接*
for(int z = 1; z <= 2 * y - 1; z++) {
System.out.print("*");
}
System.out.println();
}
// 打印4行,最后一行只有空格,没有*
for(int y = 4; y >= 1; y--) {
for(int x = 1; x <= 5 - y; x++) {
System.out.print(" ");
}
for(int z = 1; z <= 2 * y - 3; z++) {
System.out.print("*");
}
System.out.println();
}
}
/**
* 打印杨辉三角
*
* @param n
*/
public static void printTriangle(int n) {
int[][] arr = new int[n][n];
for (int i = 0; i < arr.length; i++) {
arr[i][0] = 1;
arr[i][i] = 1;
}
// 每行的元素等于同列上一行的元素加上同列上一行的元素的前一个元素之和
for(int y = 2; y < arr.length; y++) {
for(int x= 1; x < arr[y].length - 1; x++) {
arr[y][x] = arr[y - 1][x] + arr[y - 1][x - 1];
}
}
// 打印二维数组
for(int y = 0; y < arr.length; y++) {
for(int x = 0; x <= y; x++) {
System.out.print(arr[y][x] + "\t");
}
System.out.println();
}
}
/**
* 递归实现字符串反转
*
* @param str 目标字符串
* @return 反转后的字符串
*/
public static String reverse(String str) {
if(str == "" || str.length() == 1)
return str;
// 每次获取第一个元素追加到新字符串的最后
return reverse(str.substring(1)) + str.charAt(0);
}
}
运行结果:
继续努力哈!
想去总结下这个Hibernate的Dao层的通用模板(敬请期待吧)!