每日java5-7

  1. // 数组排序之冒泡排序:

相邻元素两两比较,大的往后放,第一次完毕,最大值出现在了最大索

public class ArrayDemo {

public static void main(String[] args) {

int [] arr= {24,69,80,57,13};

System.out.println(“排序前:”);

printArray(arr);

bubbleSort(arr);

System.out.println(“排序后:”);

printArray(arr);

}

public static void bubbleSort(int[] arr) {

for(int x=0;x<arr.length-1;x++) {

for(int y=0;y<arr.length-1-x;y++) {//比较的次数。

if(arr[y]>arr[y+1]) {

int temp=arr[y];

arr[y]=arr[y+1];

arr[y+1]=temp;

}

}

}

}

public static void printArray(int[] arr) {

System.out.print("[");

for(int x=0;x<arr.length;x++) {

if(x==arr.length-1) {

System.out.print(arr[x]);

}else {

System.out.print(arr[x]+",
");

}

}

System.out.println("]");

}

}

  1. // 数组排序之选择排序:

从0索引开始,依次和后面元素比较,小的往前放,第一次完毕最小值出现在了最小索引处

public class ArrayDemo2 {

public static void main(String[] args) {

int[] arr= {24,69,80,57,13};

System.out.println(“排序前:”);

printArray(arr);

selectSort(arr);

System.out.println(“排序后:”);

printArray(arr);

}

public static void selectSort(int[] arr) {

for(int x=0;x<arr.length-1;x++) {

for(int y=x+1;y<arr.length;y++) {

if(arr[y]<arr[x]) {

int temp=arr[x];

arr[x]=arr[y];

arr[y]=temp;

}

}

}

}

public static void printArray(int[] arr) {

System.out.print("[");

for(int x=0;x<arr.length;x++) {

if(x==arr.length-1) {

System.out.print(arr[x]);

}else {

System.out.print(arr[x]+",
");

}

}

System.out.println("]");

}

}

  1. // 把字符串中的字符进行排序。

分析: A:定义一个字符串    B:把字符串转换为字符数组   C:把字符数组进行排序       D:把排序后的字符数组转成字符串     E:输出最后的字符串

public class ArrayDemo3 {

public static void main(String[] args) {

String s=“dacgebf”;

char[] chs=s.toCharArray();

bubbleSort(chs);

String result=String.valueOf(chs);

System.out.println(“result:”+result);

}

public static void bubbleSort(char[] chs) {

for(int x=0;x<chs.length-1;x++) {

for(int y=0;y<chs.length-1-x;y++) {

if(chs[y]>chs[y+1]) {

char temp=chs[y];

chs[y]=chs[y+1];

chs[y+1]=temp;

}

}

}

}

}

  1. //二分查找(折半查找):数组元素有序

分析:A:定义最大索引,最小索引   B:计算出中间索引

C:拿中间索引的值和要查找的值进行比较

相等:就返回当前的中间索引

不相等:  大 左边找    小 右边找

D:重新计算出中间索引

大 左边找       max
= mid - 1;

小 右边找       min
= mid + 1;

E:回到B

import
java.util.Scanner;

public class ArrayDemo4 {

public static void main(String[] args) {

int arr[]= {11,22,33,44,55,66,77};

Scanner sc=new Scanner(System.in);

System.out.println(“请输入要查找的数据:”);

int value=sc.nextInt();

int index=getIndex(arr,value);

System.out.println(“index:”+index);

}

public static int getIndex(int[] arr,int value) {

int max=arr.length-1;

int min=0;

int mid=(max+min)/2;

while(arr[mid]!=value) {

if(arr[mid]>value) {

max=mid-1;

}else if(arr[mid]<value) {

min=mid+1;

}

if(min>max) {

return -1;

}

mid=(max+min)/2;

}

return mid;

}

}

  1. // 需求1:把100这个数据的二进制,八进制,十六进制计算出来

需求2:我要求大家判断一个数据是否是int范围内的。

public class DigitDemo {

public static void main(String[] args) {

System.out.println(Integer.toBinaryString(100));

System.out.println(Integer.toOctalString(100));

System.out.println(Integer.toHexString(100));

System.out.println(Integer.MAX_VALUE);

System.out.println(Integer.MIN_VALUE);

}

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值