选择排序小总结。

来源:互联网 发布:打碟软件 编辑:程序博客网 时间:2024/05/16 19:30

/*
需求:选择排序  (从小到大)

思路:
1, 假设所需排序的数据(以整型为例)存储在数组中,选择排序是对这 n-i 个数据进行特定形式的比较,从而得出一定的次序(从小到大,或从大到小)。

   从n-i个记录中选出关键字最小的记录,并和第i(0<=i<arr.length) 个 记录进行交换。

2,  定义一个排序功能用以比较数组中数据的大小。
  ①---定义一个min变量,用于存放数组中下标为i的数组元素的值。
  ②---然后将arr[min]与其后的数组元素进行大小比较,
程序第一次执行时,即arr[min]=arr[0];
若arr[min]大于arr[1],则执行 min=1;   此时arr[min]存放的数据是相对之前min=0; 时的值小。
重复②,循环结束后 此时若min的值不等于i;则进行数值交换。

3,定义一个交换数据的功能,用于交换数据。

4,定义一个打印数组的功能,用于打印数组。

*/

class SortDemo{//打印数组功能public static void printArray(int[] arr)  {System.out.print("[");for(int i=0;i<arr.length;i++){if(i!=arr.length-1)System.out.print(arr[i]+",");elseSystem.out.println(arr[i]+"]");}}//交换数据public static void swap(int []arr,int a,int b)  {int temp=arr[a];arr[a]=arr[b];arr[b]=temp;}//排序功能public static void selectSort(int []arr)    {for(int x=0;x<arr.length-1;x++){int min=x;for(int y=x+1;y<arr.length;y++){if(arr[min]>arr[y])min=y;}if(x!=min)swap(arr,min,x);}}public static void main(String[]args){int [] arr={9,5,43,78,14,57,7};printArray(arr); sort(arr);printArray(arr);}}


 

/*
总结:

方法调用的灵活性,传参数时不用带类型符号。

*/

 

 

 

原创粉丝点击