Java基础算法

1、选择排序和冒泡排序
 1 package firstproject;
 2 public class Test 
 3 {
 4     public static void main(String[] args)
 5     {
 6         /*冒泡排序(从小到大排序)
 7          * 思路:
 8          * 1、数组中的元素邻接的两两进行比较,按照从左到右是由小到大的顺序排,第一次冒泡使得最大值放到了最后边;
 9          * 2、第二次冒泡排序,对除最后一个最大值的其它值进行相邻的两两比较;
10          * 3、n次冒泡,直到数组元素从小到大排列为止。
11          */
12         /*选择排序(从小到大排序)
13          * 思路:
14          * 1、数组中的第一个元素和剩余的其它元素依次比较,获得最小值,将最小值放入数组第一个下标的位置;
15          * 2、数组第二个元素和剩余的数组元素依次比较,获得最小值,放于数组第二个下标位置;
16          * 3、依次比较,直到数组元素依次从小到大排列
17          */
18         /* 设计:
19          * 1、内外层嵌套循环;
20          * 2、声明局部变量,交换两数组元素的位置,而不是直接赋值;
21          * 3、函数模块独立设计。
22          */
23         int[] a=new int[]{3,4,23,53,32,322,929,2,2342,24};   //初始化数组
24         int[] b=new int[]{33,44,233,543,32,322,929,23,2342,24};   //初始化数组
25         print_arr(a);                                         //输出原数组
26         print_arr(b);
27         select_Sort(a);                                         //数组排序
28         bubble_Sort(b);
29         print_arr(a);                                         //输出排序后的数组
30         print_arr(b);
31     }
32     public static void select_Sort(int[] arr)                 //无返回值的选择排序函数
33     {
34         for(int i=0;i<arr.length-1;i++)
35         {
36             for(int j=i+1;j<arr.length;j++)
37             {
38                if(arr[i]>arr[j])
39                    swap(arr,i,j);
40             }
41         }
42     }
43     public static void bubble_Sort(int[] arr)                 //无返回值的冒泡排序函数
44     {
45         for(int i=0;i<arr.length-1;i++)
46         {
47             for(int j=0;j<arr.length-i-1;j++)
48             {
49                 if(arr[j]>arr[j+1])
50                     swap(arr,j,j+1);
51             }
52         }
53     }
54     public static void swap(int[] arr,int x,int y)              //位置置换函数,x,y是下标
55     {
56         int temp;
57         temp=arr[x];
58         arr[x]=arr[y];
59         arr[y]=temp;
60     }
61     public static void print_arr(int[] arr)                     //数组元素输出函数
62     {
63         for(int i=0;i<arr.length;i++)
64             System.out.print(arr[i]+" ");
65         System.out.println();
66     }
67 }
 2、十进制转化为其它进制的经典程序
 1 package firstproject;
 2 public class Test 
 3 {    
 4     /*十进制转化为二进制、八进制和十六进制的代码 
 5      */
 6     public static void main(String[] args)
 7     {
 8         to_bi(60);
 9         System.out.println();
10         to_ba(60);
11         System.out.println();
12         to_liu(60);
13     }
14     /* 十进制转二进制
15      */
16     public static void to_bi(int num)
17     {
18         trans(num,1,1);
19     }
20     /* 十进制转八进制
21      */
22     public static void to_ba(int num)
23     {
24         trans(num,7,3);
25     }
26     /* 十进制转十六进制
27      */
28     public static void to_liu(int num)
29     {
30         trans(num,15,4);
31     }
32     public static void trans(int num,int base,int offset)
33     {
34         if(num==0)
35         {
36             System.out.println(0);
37             return;
38         }
39         char[] chs={'0','1','2','3',
40                     '4','5','6','7',
41                     '8','9','a','b',
42                     'c','d','e','f'};
43         char[] arr=new char[32];
44         int pos=arr.length;
45         while(num!=0)
46         {
47             int temp=num&base;
48             arr[--pos]=chs[temp];
49             num=num>>>offset;
50         }
51         for(int x=pos;x<arr.length;x++)
52         {
53             System.out.print(arr[x]);
54         }
55         
56     }
57 } 
原文地址:https://www.cnblogs.com/joeshine/p/4376444.html