work1:
public class work1 {
public static void main(String[] args) {
//1、一组乱序的字符序列m,b,p,f,a,u,z,请用冒泡排序算法,使之按字母表顺序排列
char[] nums= {'m','b','p','f','a','u','z'};
int len=nums.length;
int len1=nums.length;
for(int j=0;j<len-1;j++) {//交换趟数循环
boolean flag=false;
for(int i=0;i<len-1-j;i++) {//交换次数循环
if(nums[i]>nums[i+1]) {
char temp=nums[i];
nums[i]=nums[i+1];
nums[i+1]=temp;
flag=true;
}
}
if(!flag) {
break;
}
}
for(char c:nums) {
System.out.print(c+" ");
}
}
}
输出结果:
work2:
public class work2 {
public static void main(String[] args) {
//2、一组有序的字符序列a、b、c、e、f、p、u、z,向次字符序列中插入一个新的字符,要求插入之后字符序列仍保持有序
char[] nums=new char[9];
nums[0]='a';
nums[1]='b';
nums[2]='c';
nums[3]='e';
nums[4]='f';
nums[5]='p';
nums[6]='u';
nums[7]='z';
char n='d';
int len=nums.length;
int index=len-1;//确定插入index的位置
for(int i=0;i<len-1;i++) {
if(nums[i]>n) {
index=i;
break;
}
}
for(int i=len-2;i>=index;i--) {//依次往后移
nums[i+1]=nums[i];
}
nums[index]=n;
for(char num:nums) {
System.out.print(num+" ");
}
}
}
输出结果:
work3;
public class work3 {
public static void main(String[] args) {
// 判断一个数组是否有序
int[] num = { 1,1,1,1,1,1 };
int len = num.length;
boolean flag = true;// 开关开 假设数组正序
if (num[0] < num[5]) {
for (int i = 0; i < len - 1; i++) {
if (num[i] > num[i + 1]) {
// int temp = num[i];
// num[i] = num[i + 1];
// num[i + 1] = temp;
flag = false;// 无序
break;
}
}
}
else {
for (int i = 0; i < len - 1; i++) {
if (num[i] < num[i + 1]) {
// int temp = num[i];
// num[i] = num[i + 1];
// num[i + 1] = temp;
flag = false;// 无序
break;
}
}
}
if (flag) {
System.out.print("有序");
} else {
System.out.print("无序");
}
}
}
输出结果;