算法策略之蛮力法

来源:互联网 发布:it培训 先入职再交钱 编辑:程序博客网 时间:2024/05/23 19:19

蛮力法:一种简单直接的解决问题的方法常常直接基于问题的描述和和所涉及的概念定义。

选择排序

选择排序的思路如下:
1.遍历整个列表,找到最小的元素,并将最小元素和第一元素交换。
2.从第二个元素开始遍历列表,找到最后n-1个元素中最小的数,再和第二元素交换。
3.以此类推,在对该列表进行第i次遍历的时候 ,在最后n-i个元素中找到最小的元素,把它和列表中的第i个元素交。
下图给出了对数组[88,46,87,90,23,17]所进行操作
|88 46 87 90 23 17
17| 88 46 87 90 23
17 23 |88 46 87 90
17 23 46|88 87 90
17 23 46 87|88 90
17 23 46 87 88 |90
17 23 46 87 88 90

算法伪代码如下

selectionSort(A[0,n]){//用选择排序对给定的数组A进行排序//输入:一个可排序的数组A[0,n]//输出:非降序排列的数组A[0,n]for i <- 0 to n - 1 do     min <- i     for(j <- i+1 to n do        if A[j] < A[min]            min = j    swap A[i] and A[min] }

java实现如下

public static void selectionSort(int arr){    int length = arr.length;    for (int i = 0 ;i < length - 1;i++){        int min = i;        for (int j = i + 1 ; j < length ; j++){            if(arr[min] < arr[j]){                min = j;            }        }        int temp = arr[i];        arr[i] = arr[min];        arr[min] = temp;    }}

八中排序算法的动画演示

0 0
原创粉丝点击