JAVA冒泡排序
定义一个含有10个不同数字的数组,并对该数组进行冒泡排序。要求:1.画出所使用方法的算法流程图;2.考虑方法的重载(数组类型可以是整型也可以是双精度);3.实现升序和降序...
定义一个含有10个不同数字的数组,并对该数组进行冒泡排序。
要求:
1.画出所使用方法的算法流程图;
2.考虑方法的重载(数组类型可以是整型也可以是双精度);
3.实现升序和降序两种方式;
4.输出原始数组以及算法每一轮执行完成之后的数组状态。
加分项:
1.数组长度可变,且不使用for循环;
2.实现对字符型数组的排序。 展开
要求:
1.画出所使用方法的算法流程图;
2.考虑方法的重载(数组类型可以是整型也可以是双精度);
3.实现升序和降序两种方式;
4.输出原始数组以及算法每一轮执行完成之后的数组状态。
加分项:
1.数组长度可变,且不使用for循环;
2.实现对字符型数组的排序。 展开
展开全部
package Test;
import java.util.Arrays;
public class Demo1 {
public static void main(String[] args) {
int[] a = {2,1,3,9,7,10,8,11,17,6};
//System.out.println(Arrays.toString(a));
sortArr(a,a.length - 1,0);
System.out.println(Arrays.toString(a));
sort(a);
System.out.println(Arrays.toString(a));
}
public static void sortArr(int[] a,int i,int j){
if(j<i){
sortOne(a,i,j);
}else{
sortOne(a,--i,0);
}
}
public static void sortOne (int[] a,int i,int j){
if(i==0)return;
if(a[j + 1] < a[j]){
int temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
sortArr(a,i,++j);
}
public static void sort(int[] a)
{
int temp = 0;
for (int i = a.length - 1; i > 0; --i)
{
for (int j = 0; j < i; ++j)
{
if (a[j + 1] < a[j])
{
temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
}
}
}
}
上面代码是从小到大排列
package Test;
import java.util.Arrays;
public class Demo1 {
public static void main(String[] args) {
Object[] a = {2,1,3,9,7,10,8,11,17,6};
sortArr(a,a.length - 1,0);
System.out.println(Arrays.toString(a));
Object[] b = {'a','m','s','b','h','e'};
sortArr(b,b.length - 1,0);
System.out.println(Arrays.toString(b));
}
public static void sortArr(Object[] a,int i,int j){
if(j<i){
sortOne(a,i,j);
}else{
sortOne(a,--i,0);
}
}
public static void sortOne (Object[] a,int i,int j){
if(i==0)return;
if(a[j + 1] instanceof Integer){
if(Integer.valueOf(""+a[j + 1]) <Integer.valueOf(""+ a[j])){
Object temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
}else if(a[j + 1] instanceof Character){
if(a[j + 1].toString().charAt(0) <a[j].toString().charAt(0)){
Object temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
}
sortArr(a,i,++j);
}
// public static void sort(int[] a)
// {
// int temp = 0;
// for (int i = a.length - 1; i > 0; --i)
// {
// for (int j = 0; j < i; ++j)
// {
// if (a[j + 1] < a[j])
// {
// temp = a[j];
// a[j] = a[j + 1];
// a[j + 1] = temp;
// }
// }
// }
// }
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询