数组高级:排序和查找

数组高级:排序和查找

一、排序

1、冒泡排序(前面讲解过)

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

2、选择排序

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

二、查找

1、基本查找:数组元素无序

2、二分查找:数组元素有序

三、数组高级练习题

1、把字符串中的字符进行排序

/*
            举例:"dacgebf"
            结果:"abcdefg"

    符合常识字典字母顺序,在java中又称之为自然排序

    分析:
        1、将被排序的字符串转成字符数组
        2、将字符数组进行排序
        3、将数组转成字符串
        4、输出
 */
public class StringBufferDemo12 {
    public static void main(String[] args) {
        //定义一个字符串
        String s = "dacgebf";
        System.out.println("排序之前的字符串为:" + s);

        //将被排序的字符串转成字符数组
        char[] chars = s.toCharArray();

        //将字符数组进行排序
        //使用冒泡排序法
        //自定义方法名,在main方法外类内,编写方法的功能
        bubblingSort(chars);

        //将数组转换从字符串
        //使用String类中的valueOf方法
        String s1 = String.valueOf(chars);
        System.out.println("排序后的字符串为:" + s1);
    }

    private static void bubblingSort(char[] chars) {
        for (int x = 0; x < chars.length - 1; x++) {//外层控制比较的次数
            for (int y = 0; y < chars.length - 1 - x; y++) {//内层控制着前一个和后一个比较
                if (chars[y] > chars[y + 1]) {
                    char temp = chars[y];//定义一个临时的第三方变量来接收大的值
                    chars[y] = chars[y + 1];//然后将y+1赋给y,y+1就没值了
                    chars[y + 1] = temp;//然后再将上一次比较出来大的那个值赋给y+1
                }
            }
        }
    }
}
            执行结果如下:
                        排序之前的字符串为:dacgebf
                        排序后的字符串为:abcdefg

                        Process finished with exit code 0

上一篇:LeetCode - 4. 字符串


下一篇:css中:overflow:hidden清除浮动的原理