Java数据结构-基础排序

import java.util.*;


public class Bubble{//冒泡排序
public static void bubble(int[] arr){
int tmp;
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]){
tmp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=tmp;

}

}
}
}

public static void swap(int[] arr,int x,int y){
int z;
z=arr[x];
arr[x]=arr[y];
arr[y]=z;
}

public void quickSort(int[] arr,int left,int right){//快速排序
if(left<right){
int i=left;
int j=right+1;
int pivot=arr[left];
do{
do i++;while(arr[i]<pivot);
do j--;while(arr[j]>pivot);
if(i<j)
swap(arr[i],arr[j]);
}while(i<j);
}
swap(arr[left],a[j]);
quickSort(arr,left;j-1);
quickSort(arr,j+1,right);
}


public static void selectSort(int[] arr,int n){//选择排序
for(int i=0;i<n-1;i++){
int min=i;
for(int j=i+1;j<n-1;j++){
if(arr[min]>arr[j])
min=j;
}
int tmp;
tmp=arr[i];
arr[i]=arr[min];
arr[min]=tmp;

}



public static int binarySearch(int[] arr,int n,int x){//二分搜索
int low,high,mid;
low=0;
high=n-1;
while(low<=high){
mid=(low+high)/2;
if(arr[mid]==x)
return mid;
if(arr[mid]<x)
low=mid+1;
else
high=mid-1;
}
return -1;
}

public static long fac(int n){//n!
if(n==0) 
return 1;
else 
return n*fac(n-1);
}

public static void permutations(char[] str,int k,int m){
if(k==m){
for(int i=0;i<str.length;i++)
System.out.print(str[i]);
}
else{
for(int i=k;i<=m;i++){
swap(str[i],str[k]);
permutations(str,k+1,m);
swap(str[i],str[k]);
}
}
}


public static void insertionSort(int[] arr,int n){//插入排序
int in,out;
for(out=1;out<n;out++){
int temp=arr[out];
in=out;
while(in>0&&arr[in-1]>temp){
arr[in]=arr[in-1];
in=in-1;
}
arr[in]=temp;
}
}

public static void main(String[] args){
// int[] arr={1,5,6,8,9,4,5,2};
// bubble(arr);
// int index=binarySearch(arr,8,2);
char[] str={'a','b','c'};
permutations(str,0,2);
System.out.print("5!="+fac(5));
//bubble(arr);
//selectSort(arr,8);
/* for(int i=0;i<arr.length;i++){
System.out.print(arr[i]+" ");
} */
}

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值