package com.finn;
public class YueShu {
public static void main(String[] args) {
// YueShu.yueShu(100, 20);
// String[] a = { "a1", "a2", "a3", "b3", "c", "b", "33", "33" };
// boolean b = new YueShu().fun(0, a);
// System.out.println(b);
// System.out.println(Fib(12));
// int nDisks = 3;// 设置汉诺塔为3阶
// moveDish(nDisks, 'A', 'B', 'C');// 实现移动算法
// int length = 3;
// int start = 0;
// int list[] = new int[length];
// for (int j = 0; j < length; j++)
// list[j] = j + 1;
// permulation(list, start, length);
// int list[] ={1,3,8,2,93,91,9,3,98};
// maoPao(list);
// 插入排序
insertSort();
}
/**
* 插入排序
*/
static void insertSort()
{
int list[] = {21,78,29,33,99};
int len = list.length;
int j =0;
int temp = 0;
for(int i=0;i<len;i++)
{
temp = list[i];
for(j=i;j>0 && temp<list[j-1];j--)
{
list[j] = list[j-1];
}
list[j] = temp;
System.out.println("j:"+j);
}
for(int i=0;i<len;i++)
{
System.out.println(list[i]);
}
}
/**
* 冒泡排序
*/
static void maoPao(int[] list) {
int len = list.length;
for(int i=0;i<len-1;i++)
{
for(int j=0;j<len-i-1;j++){
if(list[j]<list[j+1]){
int temp = list[j];
list[j] = list[j+1];
list[j+1] = temp;
}
}
}
for(int i=0;i<len-1;i++){
System.out.println(list[i]);
}
}
/**
* 获取 两个数 最大公约数
*
* @param num1
* @param num2
*/
static void yueShu(int num1, int num2) {
if (num1 == num2) {
System.out.println("最大公约数 " + num1);
} else {
yueShu(Math.abs(num1 - num2), Math.min(num1, num2));
}
}
/**
* 汉诺塔问题
*
* @param level
* @param from
* @param inter
* @param to
*/
public static void moveDish(int level, char from, char inter, char to) {
if (level == 1) {// 如果只有一个盘子就退出迭代
System.out.println("从 " + from + " 移动盘子 1 号到 " + to);
} else {// 如果有大于一个盘子就继续迭代
moveDish(level - 1, from, to, inter);
System.out.println("从 " + from + " 移动盘子 " + level + " 号到 " + to);
moveDish(level - 1, inter, from, to);
}
}
/**
* 判断一段字符串数组里面是否有相同的内容
* @param n
* @param a
* @return
*/
public boolean fun(int n, String[] a) {
boolean b = false;
if (n == a.length) {
b = true;
} else {
for (int i = n; i < a.length - 1; i++) {
if (a[n].equals(a[i + 1])) {
return true;
}
}
n++;
fun(n, a);
}
return b;
}
/**
* 斐波那契
*
* @return
*/
static int Fib(int n) {
if (n == 0 || n == 1)
return n;
if (n > 1)
return Fib(n - 1) + Fib(n - 2);
return 0;
}
/**
* 全排列
* 暂时没有实现
*/
public static void Swap(int a, int b) {
int temp = a;
a = b;
b = temp;
}
public static void Perm(int list[], int k, int m) {
if (k == m - 1) {
for (int i = 0; i < m; i++) {
System.out.println(list[i]);
}
} else {
for (int i = k; i < m; i++) {
Swap(list[k], list[i]);
Perm(list, k + 1, m);
Swap(list[k], list[i]);
}
}
}
static void permulation(int[] list, int start, int length) {
int i;
if (start == length) {
for (i = 0; i < length; i++)
System.out.print(list[i] + " ");
System.out.println();
} else {
for (i = start; i < length; i++) {
swap(list, start, i);
permulation(list, start + 1, length);
swap(list, start, i);
}
}
}
public static void swap(int[] list, int start, int i) {
System.out.println("start==i=="+start+" - "+i);
int temp;
temp = list[start];
list[start] = list[i];
list[i] = temp;
System.out.println("list[start]:"+list[start]);
System.out.println("list[i]:"+list[i]);
String list_string = "";
for(int j=0;j<list.length;j++)
{
list_string = list_string+"==="+list[j];
}
System.out.println("list[list_string]:"+list_string);
}
}
Java 常见 几个排序算法
最新推荐文章于 2021-07-19 22:20:42 发布