码迷,mamicode.com
首页 > 编程语言 > 详细

简单数值排序算法 冒泡、选择、 直接插入排序

时间:2015-10-19 12:33:09      阅读:178      评论:0      收藏:0      [点我收藏+]

标签:

1. 选择排序法

  技术分享

 找到第一小的数字,放在第一個位置;再找到第二小的数字,放在第二個位置
 依次找到每次遍历的最小的值。一次找一個数字,如此下去就会把所有数值按照
順序排好。注意,与冒泡不同,遍历的过程中并不交换数值。一次遍历结束才交换。
package com.sphere.algorith.design;
import java.util.Arrays;

public class Test {

    public static void main(String[] args) {
        
        int[] arr = {3,6,1,7,9,-8,2,5};
        System.out.println("排序前:"+Arrays.toString(arr));
        
        int[] sort_arr = selection_sort(arr);
        System.out.println("排序后:"+Arrays.toString(sort_arr));
    }

    // 选择排序法
    public static int[] selection_sort(int[] array){
        
        if(array == null || array.length == 0){
            System.out.println("所排序的数组为空!");
            return null;
        }
        // 数组长度
        int len = array.length;
        // 循环计数器
        int i ,j;
        
        int minValue = 0;    //记录一次遍历中的最小值
        int index = 0;        //记录最小值的索引值
        
        for (i = 0; i < len - 1; i++) {
            minValue = array[i];    //假设第i个元素为最小
            index = i;
            for (j = i+1; j < len; j++) {
                if(array[j] < minValue){
                    minValue = array[j];    //每次取得剩余的最小值,及其下标。
                    index = j;
                }
            }
            array[index] = array[i];    // 一次遍历结束,将最小的值与第i个元素交换
            array[i] = minValue;
        }
        return array;
    }
}

排序前:[3, 6, 1, 7, 9, -8, 2, 5]

排序后:[-8, 1, 2, 3, 5, 6, 7, 9]

 

简单数值排序算法 冒泡、选择、 直接插入排序

标签:

原文地址:http://www.cnblogs.com/sphere/p/4891351.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!