java面试必备:排序算法之冒泡、选择排序

java面试必备:排序算法之冒泡、选择排序

前言:作为面试中极为重要的数据结构算法题,排序总是不可避免,然而这些东西容易遗忘,我们曾经无数次的把他们烂记于胸,但无奈,在现实中,用的次数却并不多,久而久之,这些排序的思想虽然还在心中,但如何实现却有点泯然了,如此,也为了即将来的新的面试,再次收拾好心情,好好的整理下这些排序算法,并用我们熟悉的编程语言去实现它,无疑能够在很大程度上加深我们对其的理解,在这里暂且仅用java语言进行实现,C亦或者C++基本上是雷同,废话不多说,今天先贴出刚刚实现的冒泡排序以及选择排序。。。

  • 冒泡排序和选择排序我就不分开写了,人比较懒,就放一个代码块了吧。
package com.Arithmetic.chapter1;

import java.util.Random;
/** * * @项目名称:Arithmetic * @类名称:Sort * @创建人:[czc] * @创建时间:2016-10-20下午06:30:55 */
public class Sort {

    public static void main(String[] args) {
        Random random = new Random();
        int [] sort = new int[10];
        for (int i = 0; i < sort.length; i++) {
            sort[i] = random.nextInt(50);
        }
        System.out.println("排序前的数组是:");
        for(int i:sort){
            System.out.print(i+" ");
        }
        //bubbleSort(sort);
        selectSort(sort);
        System.out.println();
        System.out.println("排序后的数组是:");
        for (int i = 0; i < sort.length; i++) {
            System.out.print(sort[i]+" ");
        }

    }
    /** * 冒泡排序 * 依次比较相邻的两个数,将小数放在前面,大数放在后面 * @param sort */
    public static void bubbleSort(int [] sort){
        for(int i = 1;i<=sort.length;i++){
            for (int j = 0; j < sort.length-i; j++) {
                if (sort[j]>sort[j+1]) {
                    int temp = sort[j+1];
                    sort[j+1] = sort[j];
                    sort[j] = temp;
                }
            }
        }
    }
    /** * 选择排序 * 每趟从待排序的数据元素中选出最小或最大的一元素,放在已排好序的数列的最后,直到全部待排序的数据元素排完. * @param sort */
    public static void selectSort(int [] sort){
        for (int i = 0; i < sort.length-1; i++) {
            for (int j = i+1; j < sort.length; j++) {
                if (sort[j]<sort[i]) {
                    int temp = sort[i];
                    sort[i] = sort[j];
                    sort[j] = temp;
                }
            }
        }
    }   

}

最后,关于这些算法,过多不做解释,大家有不懂的可以积极提出来,我觉得一般是能看懂的,有写的不当之处也请大家一起指正,共同学习!

你可能感兴趣的:(java,面试,排序算法)