前言:作为面试中极为重要的数据结构算法题,排序总是不可避免,然而这些东西容易遗忘,我们曾经无数次的把他们烂记于胸,但无奈,在现实中,用的次数却并不多,久而久之,这些排序的思想虽然还在心中,但如何实现却有点泯然了,如此,也为了即将来的新的面试,再次收拾好心情,好好的整理下这些排序算法,并用我们熟悉的编程语言去实现它,无疑能够在很大程度上加深我们对其的理解,在这里暂且仅用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; } } } } } 后,关于这些算法,过多不做解释,大家有不懂的可以积极提出来,我觉得一般是能看懂的,有写的不当之处也请大家一起指正,共同学习!