黑马程序员-数组排序-选择排序与冒泡排序

来源:互联网 发布:高速下载软件 编辑:程序博客网 时间:2024/05/18 13:43

----------- android培训java培训java学习型技术博客、期待与您交流! ------------

程序如下:

选择排序与冒泡排序的优化:

 

/*需求:对数组实现排序{5,2,9,1,4,6,1}.使用选择排序  2.使用冒泡排序思路:(选择排序)1.定义一个函数用于实现数组的排序功能2.选择数组的第一个数与其他数比较,存储较小的数到第一个数中3,选择数组的第二个数与后面的数比较,存储较小的数到选择的数中4,依次比较到length-1上步骤:1定义一个函数SelectSort返回类型为void,参数为int arr[]2,用for循环依次比较数,将较小的值存入比较数中。*//*需求:对数组实现排序{5,2,9,1,4,6,1}思路:使用冒泡排序1.定义一个函数用于实现数组的排序2,对相邻的数组数值进行比较,将较大的值存储在角标+1的数组中,数组最后的值存储最大值3,不断循环比较,得出结果步骤:1,定义一个函数BubbleSort,返回类型为void,参数是int[] arr;2,使用for循环一次比较相邻数组角标,将较大的值存储到角标较大的数组位置中,存到最后是最大值。*//*位置置换功能需求:优化,将满足条件的元素进行位置的置换思路:将位置置换的代码抽取取来,定义一个函数实现它的功能步骤:定义一个函数swap(),返回类型void,参数有int[] arr,int a,int b.将置换代码,copy到函数中,其他代码用函数代替*/import java.util.*;class ArraySort {/*位置置换函数实现*/public static void swap(int[] arr,int i,int j){if(arr[i]>arr[j]){int temp=0;temp=arr[j];arr[j]=arr[i];arr[i]=temp;}}//选择排序函数实现public static void SelectSort(int arr[]){for(int i=0;i<arr.length-1;i++){for(int j=i+1;j<=arr.length-1;j++){swap(arr,i,j);}}}//冒泡排序函数实现(逆序)public static void BubbleSort(int[] arr){for (int i=0;i<arr.length ;i++ ){for(int j=0;j<arr.length-1-i;j++){/*if(arr[j]<arr[j+1])//正,逆序可以通过改变<,>号完成。{int temp=0;temp=arr[j+1];arr[j+1]=arr[j];arr[j]=temp;}*/swap(arr,j,j+1);}}}//打印数组函数是实现public static void PrintArray(int[] arr){for(int i=0;i<arr.length;i++){if(i!=arr.length-1)System.out.print(arr[i]+", ");else System.out.println(arr[i]);}}public static void main(String[] args) {int[] arr={5,2,9,1,4,6,1};SelectSort(arr);//选择排序//Arrays.sort(arr);//开发用注释PrintArray(arr);//打印数组int[] arr1={5,2,10,3,4,6,1};BubbleSort(arr1);//冒泡排序PrintArray(arr1);}}

0 0