八大排序算法
陈年风楼
如果需要查看更多博客,请移步我的个人博客 http://zhangjiaheng.cn
展开
-
八大排序算法之快速排序
八大排序算法之快速排序八大排序算法每一种都是必须掌握的,不过快速排序是我们必须掌握很熟练并且是面试中被问到的最多次的排序算法。面试时会被面试官问到快速排序实现的原理,会问到给定序列的时间复杂度等等。快速排序也是分治算法的一种,何为分治算法?请百度,哦不,谷歌一下先。。。Talk is cheap,show you the code!public class Test9{ /**以下标low对原创 2016-03-29 21:08:01 · 521 阅读 · 0 评论 -
八大排序算法之插入排序
八大排序算法之插入排序插入排序 :对于一个整型数组,将其分为已排序和未排序两部分。若须实现升序排序的话,在未排序的那一部分中取出第一个的元素,然后遍历已排序数组元素,找到这个取出待排序的元素的容身之所,插入。然后已排序的数组元素个数就增加了一个,同理未排序的数组元素个数就减少了一个。直到未排序的数组元素个数为零,结束程序 以下是插入排序的简单代码 //将 n 插入到数组a[] 的从0 到en原创 2016-04-04 14:48:51 · 438 阅读 · 0 评论 -
八大排序算法之二元选择排序
选择排序的思想即在要排序的一组数中,选出最大(或者最小)的一个数与第一个位置的数字进行交换;然后在剩下的一组数中再找最大(或者最小)的与第二个位置进行交换,直到第n-1个元素(倒数第二个数)和第n个元素(最后一个数)比较为止.而二元选择排序,顾名思义,从待排序数组中选择一个最大值,和一个最小值,分别与第一个和最后一个元素进行交换,这样就使选择排序的时间复杂度能够降低~在敲这段代码的过程中遇到一个以前原创 2015-11-11 21:11:07 · 2997 阅读 · 4 评论 -
八大排序算法之简单选择排序
基本排序思想:: 在要排序的一组数中,选出最大(或者最小)的一个数与第一个位置的数字进行交换;然后在剩下的一组数中再找最大(或者最小)的与第二个位置进行交换,直到第n-1个元素(倒数第二个数)和第n个元素(最后一个数)比较为止,排序完成! 具体步骤见代码中注释#include<stdio.h>//选择一个最大值出来int MaxKey(int a[], int m, int n){原创 2015-11-05 19:19:38 · 534 阅读 · 0 评论 -
八大排序算法之冒泡排序
这个。。。就放代码吧 public static void main(String[] args) { int a[] = {6,3,7,9,1,4,2,5,8}; for (int i = 0; i < a.length; i++) { System.out.printf("%d " , a[i]); }原创 2016-04-04 15:53:54 · 279 阅读 · 0 评论 -
八大排序算法之归并排序
归并排序,就是合并排序。简言之即合并有序序列,组成一个新的有序数组。归并排序的主要过程:归并排序运用了分治算法的思想,将一个数组划分成两个,两个划分成四个,直到单个序列的长度为1 ,开始合并有序数组(长度为一的序列肯定是有序的 ,因为只有一个数值),然后返回上一层递归调用,合并新的有序数组(这是待合并的序列长度为2 ),以此类推,直到排序完成。 归并排序的java代码实现://合并有序序列原创 2016-04-07 22:18:33 · 435 阅读 · 0 评论