排序和归并
一圈儿的云
爱摇滚,爱编程,爱java,喜欢钻研算法,和所有软件工程师一样,希望凭自己的努力改变世界
展开
-
选择排序 - SelectionSort
选择排序-SelectionSort选择排序是一种很直观的排序算法,就是每次选出最小(大)的元素,依次放在序列的前面。基本思想在要排序的一组数中,选出最小(或者最大)的一个数与第1个位置的数 交换(swap);然后在剩下的数当中再找最小(或者最大)的与第2个位置的数交换,依次类推,直到第n-1个元素(倒数第二个数)和第n个元素(最后一个数)比较为止。 操作方法: 第一趟,从n 个记录中找出原创 2015-10-19 18:32:51 · 394 阅读 · 0 评论 -
插入排序 - InsertionSort
插入排序明天就是恒生的面试了,今天准备一下常见的排序算法。插入排序是常见的排序方式,我们平常打扑克时,起牌就运用到了插入排序的思想!基本思想首先先将第一个元素看作是有序序列,第二个元素和第一个比较,小于数组后移插入,组成有序序列,直至整个序列有序为止!插入算法的要点:设立哨兵,作为临时存储和判断数组边界之用。 由于只有比较元素只有比前面的有序元素小,数组才会后移,所以相等元素的顺序不变,插入排序的原创 2015-10-19 18:18:26 · 385 阅读 · 0 评论 -
堆排序 HeapSort
堆排序 HeapSort二叉堆是一组能够用堆有序的完全二叉树排序的元素,并在数组中按照层级存储(不适用数组的一个位置,下标从1开始)!二叉堆可以很好的实现优先队列的基本操作。优先队列是一种抽象的数据结构,主要有insert(插入元素) 和 delMax(删除最大操作)两个标志性操作。在一个堆中,位置k的节点的父节点的位置是是k/2,而他的两个子节点的位置则分别是2k,2k+1!利用数组中无需指针即可原创 2015-10-25 16:38:27 · 564 阅读 · 1 评论 -
二维数组中二分查找
二维数组中二分查找 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。解题思路从左下角(或者右上角) 开始和目标值比较,如果相等,直接返回true,查找成功;如果大于,则列值–;如果小于,则二维索引++;如果当数组遍历到左上角(右下角),如果循环执行完毕,则返回false。pub原创 2015-10-29 20:26:46 · 2834 阅读 · 0 评论