package 冒泡排序;
import java.util.Arrays;
/**
* 冒泡排序改进版
* @author zjn
*
*/
public class BubbleSort1 {
public static void BubbleSort(int[] arr) {
boolean flag = true;
while(flag){
int temp;//定义一个临时变量
for(int i=0;i<arr.length-1;i++){//冒泡趟数,n-1趟
for(int j=0;j<arr.length-i-1;j++){
if(arr[j+1]<arr[j]){
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
flag = true;
}
}
if(!flag){
break;//若果没有发生交换,则退出循环
}
}
}
}
public static void main(String[] args) {
int arr[] = new int[]{1,6,2,2,5};
BubbleSort.BubbleSort(arr);
System.out.println(Arrays.toString(arr));
}
}
*****************************************************************************************
*****************************************************************************************
package 冒泡排序;
import java.util.Arrays;
/**
* 冒泡排序
* @author zjn
*
*/
public class BubbleSort {
public static void BubbleSort(int[] arr) {
int temp;//定义一个临时变量
for(int i=0;i<arr.length-1;i++){//冒泡趟数
for(int j=0;j<arr.length-i-1;j++){
if(arr[j+1]<arr[j]){
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}
public static void main(String[] args) {
int arr[] = new int[]{1,6,2,2,5};
BubbleSort.BubbleSort(arr);
System.out.println(Arrays.toString(arr));
}
}
****************************************************************************************
****************************************************************************************
递归(recursion):程序调用自身的编程技巧。
递归满足2个条件:
1)有反复执行的过程(调用自身)
2)有跳出反复执行过程的条件(递归出口)
递归案例:判定一系列字符串中是否有相同的内容
public class T {
public static void main(String[] args) {
String[] a = {"a1","a2","a3","b3","c","b","33","33"};
boolean b = new T().fun(0, a);
System.out.println(b);
}
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++){
System.out.println(n+" "+(i+1));
if(a[n].equals(a[i+1])){
return false;
}
}
n++;
fun(n,a);
}
return b;
}
}
*****************************************************************************************
*****************************************************************************************
单例模式:
public class SingletonPattern {
/**
* 使用静态变量来保存实例
*/
private static SingletonPattern instance;
/**
* 私有化构造方法 作用:无法使用new关键字来创建SingletonPattern的实例。
*/
private SingletonPattern() {
}
/**
* 提供一个公用的getInstance()方法用来获取instance实例
*/
public static SingletonPattern getInstance() {
if (instance == null) {
synchronized (SingletonPattern.class) {
if (instance == null) {
instance = new SingletonPattern();
}
}
}
return instance;
}
}
怎么写一个冒泡排序,递归,单例模式的使用
最新推荐文章于 2023-01-09 09:52:28 发布