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