Java实现的冒泡+选择排序算法

    xiaoxiao2021-04-13  31

        

                    数组的高级操作(冒泡排序,选择排序,数组工具类,练习)

    一:冒泡排序                      

    1.2 冒泡排序基本概念是:

    相邻的两个元素进行比较,小的放前面,大的放后面

    1.3 画图讲解冒泡排序,int[] arr = { 24, 69, 80, 57, 13 };

    1.4 文字分析比较过程

    第一次比较:比较了4次,最大的值放到了最后

    第二次比较:比较了3次,次大的值放到了倒数第二,依次类推。

    举个例子:从键盘输入10个数字,用冒泡排序进行从小到大的排序

    源代码如下:

    package com.study01;

    import java.util.Arrays;

    import java.util.Scanner;

    /*

     * 从键盘输入10个数字,用冒泡排序进行从小到大的排序

     */

    public class DemoSort {

    public static void main(String[] args) {

    System.out.println("Please input number:");

    int []arr=new int [10];

    for(int i=0;i<=9;i++){

    Scanner sc=new Scanner(System.in);

    arr[i]=sc.nextInt();

    }

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

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

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

    int temp=arr[j];

    arr[j]=arr[j+1];

    arr[j+1]=temp;

    }

    }

    }System.out.println(Arrays.toString(arr));

    }

    }

    这里需要注意越界问题,要分清数组索引和实际值,因为Java数组首元素为a[0],所以容易引起模糊。另外我在最后的输出语句调用的是String的方法,这就使得转化为转化为字符串来说相对容易,并且不用去写一个字符串输出函数函数专门去调用。

    字符串输出函数:public static void printArray(int []arr){

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

    System.out.println(arr[i]);

    }

    }//在写Java程序的时候一定要注意大括号匹配的问题,要有清楚的思维。

    二:选择排序:

    2.1 选择排序概念:

     * 选择排序:

     * 0索引开始,依次和后面的每一个元素进行比较

     * 第一次比较完毕,最小值出现在了最小索引处

     * 第二次比较完毕,次小值出现在了次小索引处

     * ...

     * 完毕后,就排序了。

     

    2.2 画图讲解选择排序规

    2.3 运用选择排序int[] arr = { 24, 69, 80, 57, 13 };进行排序

     

    举个例子:

    package com.study01;

    /*

     * 运用选择排序int[]arr = { 24, 69, 80, 57, 13 };进行排序

     */

    public class DemoSort2 {

    public static void main(String[] args) {

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

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

    for(int j=i+1;j<arr.length;j++){

    if(arr[i]>arr[j]){

    int temp=arr[i];

    arr[i]=arr[j];

    arr[j]=temp;

    }

    }

    }printArray(arr);

    }public static void printArray(int[] arr){

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

    System.out.println(arr[i]);

    }

    }

    }

     

    三:Arrays数组工具类

    3.1 针对数组进行操作的工具类。提供了排序,转换等功能。

    3.2

     * 成员方法:

     * public static String toString(int[] a):把数组转成字符串

     * public static void sort(int[] a):对数组进行排序(有重载)

    public static String toString(int[] a):把数组转成字符串的例子:

    package com.study02;

    import java.util.Arrays;

    public class ArraysDemo2 {

    public static void main(String[] args) {

    int []arr={1,2,34,5};

    String arrStr=Arrays.toString(arr);

    System.out.println(arrStr);

    char []chs={'w','u','j','i'};

    String chsStr=Arrays.toString(chs);

    System.out.println(chsStr);

     

    }

    }

     

    public static void sort(int[] a):对数组进行排序(有重载)的例子:

    package com.study02;

    import java.util.Arrays;

    public class DemoArrays {

    public static void main(String[] args) {

    int[] arr={4,8,2,0,9};

    Arrays.sort(arr);

    printArr(arr);

    char[]chs={'w','d','r','a','o'};

    Arrays.sort(chs);

    printArr(chs);

    }

    public static void printArr(int[]arr){

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

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

    }System.out.println();

    }public static void printArr(char[]chs){

    for(int i=0;i<chs.length;i++){

    System.out.print(chs[i]+" ");

    }System.out.println();

    }

     

    }

     

     

    转载请注明原文地址: https://ju.6miu.com/read-668374.html

    最新回复(0)