java中基数排序算法代码/**
* 冒泡法排序br/
* li比较相邻的元素 。如果第一个比第二个大,就交换java首次适应算法代码他们两个 。/li
* li对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对 。在这一点,最后的元素应该会是最大的数 。/li
* li针对所有的元素重复以上的步骤,除java首次适应算法代码了最后一个 。/li
* li持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较 。/li
*
* @param numbers
*需要排序的整型数组
*/
public static void bubbleSort(int[] numbers) {
int temp; // 记录临时中间值
int size = numbers.length; // 数组大小
for (int i = 0; isize - 1; i++) {
for (int j = i + 1; jsize; j++) {
if (numbers[i]numbers[j]) { // 交换两数的位置
temp = numbers[i];
numbers[i] = numbers[j];
numbers[j] = temp;
}
}
}
}
怎么用java代码实现开平方算法?这是我应聘时写的算法代码 , 运行成功:
//这是用java编写的一个求2的平方根的程序,精确度可通过修改weishu参数来改变
public class app
{ //用二分法求2的平方根
public static void main(String args[])
{
int a[],b[],s[],d[],c[],ss[];
int i,j,k;
a=new int[1000];
b=new int[1000];
s=new int[1000];
d=new int[1000];
c=new int[1000];
ss=new int[1000];
boolean jingque;
jingque=true;
a[0]=b[0]=2;
a[2]=b[2]=1;
a[1]=4;
b[1]=5;
int weishu=200;//定义循环次数
for(i=0;i1000;i++)
s[i]=0;
for(k=0;kweishu;k++)
{
hanshucheng.cheng(b,b,s);
j=s[0];
while (s[j]=2)
{
hanshuadd.add(a,b,c);
hanshuchu.chu(d,c);
hanshucopy.copy(ss,b);
hanshucopy.copy(b,d);
hanshucheng.cheng(b,b,s);
j=s[0];
// for(i=0;i=s[0];i++)
//System.out.println("s["+i+"]="+s[i]);
}
hanshucopy.copy(a,b);
hanshucopy.copy(b,ss);
}
for(i=a[0];i=1;i--)
System.out.print(a[i]);
System.out.print("左边计算到"+a[0]+"位\n");
for(i=b[0];i=1;i--)
System.out.print(b[i]);
System.out.print("右边计算到"+b[0]+"位\n");
for(i=a[0],j=b[0];jingque==true;i--,j--)
if(a[i]==b[j])
System.out.print(a[i]);
else
jingque=false;
System.out.print("精确到"+(a[0]-i-1)+"位\n");
}
}
class hanshucheng
{
public static void cheng( int a[],int b[],int s[])//定义两数相乘的函数
{
int flag=0,flag1=0;
int number=b[0];
int c[]=new int[1000];
int i,j,k,u;
for(int i1=0;i11000;i1++)
s[i1]=0;
for(i=1;i=number;i++)
{
for(int i1=0;i11000;i1++)
c[i1]=0;
for(j=i,k=1;jnumber+i;j++,k++)
{
c[j]=(a[k]*b[i]+flag)%10;
flag=(a[k]*b[i]+flag)/10;
}
if (flag!=0)
{
c[j]=flag;
flag=0;
j=j+1;
}
c[0]=j-1;
//for(k=1;k=c[0];k++)
//System.out.println("c="+c[k]);
for(k=1;k=c[0];k++)
{ u=s[k];
s[k]=(u+c[k]+flag1)%10;
flag1=(u+c[k]+flag1)/10;
}
if(flag1!=0)
{
s[k]=flag1;
k=k+1;
flag1=0;
}
s[0]=k-1;
// for(k=0;k=s[0];k++)
//System.out.println(s[k]);
}
}
}
class hanshuadd
{
public static void add(int a[],int b[],int c[])//定义两数相加的函数
{
int flag=0;int i,j,k;
int a1[]=new int[1000];
for(i=1;i=b[0];i++)
a1[i]=0;
for(j=b[0]-a[0]+1,k=1;j=b[0];j++,k++)
a1[j]=a[k];
//for(k=0;k=j;k++)
//System.out.println("a1="+a1[k]);
for(i=1;i=b[0];i++)
{
c[i]=(a1[i]+b[i]+flag)%10;
推荐阅读
- 益智网页小游戏儿童版,网页儿童游戏大全
- 刀剑乱舞ios服如何充值,刀剑乱舞安卓iOS通用吗
- 网络卡怎么接路由器,上网卡接路由器
- linux中单独ps命令,linux怎么用ps
- sub在c语言里宏函数 c语言substring函数用法
- erp和会计信息系统的关系大吗,erp与会计信息系统的关系
- 联通用什么手机看电影免流,联通手机营业厅免流量看电影
- 大班角色扮演游戏课程教案,大班角色扮演游戏设计
- 函数公式python的简单介绍