
算法
文章平均质量分 88
ThinerZQ
woman+code=life
展开
-
归并排序
归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。首先考虑下如何将将二个有序数列合并。这个非常简单,只要从比较二个数列的第一个数,谁小就先取谁,取了后就在对应数列中删除这个数。然后再进行比较,如果有数列为空,那直接将另一个数列的数据依次取出即可。再来看归并排序描述:基本思路就是原创 2015-11-04 11:02:05 · 485 阅读 · 0 评论 -
插入排序
基本思想:将一个记录插入到已排序好的有序表中,从而得到一个新,记录数增1的有序表。即:先将序列的第1个记录看成是一个有序的子序列,然后从第2个记录逐个进行插入,直至整个序列有序为止。直接插入排序示例:如果碰见一个和插入元素相等的,那么插入元素把想插入的元素放在相等元素的后面。所以,相等元素的前后顺序没有改变,从原无序序列出去的顺序就是排好序后的顺序,所以原创 2015-11-01 12:34:17 · 453 阅读 · 0 评论 -
冒泡排序(与改进)
冒泡排序应该是最简单的排序算法了描述:在要排序的一组数中,对当前还未排好序的范围内的全部数,自上而下对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒。即:每当两相邻的数比较后发现它们的排序与排序要求相反时,就将它们互换。如下图所示算法(java):public static void bubbleSort(int a[]) {原创 2015-10-31 23:34:19 · 787 阅读 · 1 评论 -
希尔排序
希尔排序希尔排序的实质就是分组插入排序,该方法又称缩小增量排序,因DL.Shell于1959年提出而得名。描述 基本思想是:先将整个待排元素序列分割成若干个子序列(由相隔某个“增量”的元素组成的)分别进行直接插入排序,然后依次缩减增量再进行排序,待整个序列中的元素基本有序(增量足够小)时,再对全体元素进行一次直接插入排序。因为直接插入排序在元素基本有序的情况下(接近最好情况),原创 2015-11-02 16:09:43 · 514 阅读 · 0 评论 -
堆排序
堆排序“`java package com.zq.algorithm.sort;/** * Created by zhengshouzi on 2015/11/1. */ public class HeapSort { public static void main(String[] args) { //数组是引用传递 int[] a = {16, 7, 3, 2原创 2015-11-08 19:50:25 · 427 阅读 · 0 评论 -
简单选择排序(与改进)
简单选择排序描述:在要排序的一组数中,选出最小(或者最大)的一个数与第1个位置的数交换;然后在剩下的数当中再找最小(或者最大)的与第2个位置的数交换,依次类推,直到第n-1个元素(倒数第二个数)和第n个元素(最后一个数)比较为止。排序方法:第一趟,从n 个记录中找出关键码最小的记录与第一个记录交换;第二趟,从第二个记录开始的n-1 个记录原创 2015-11-01 10:51:48 · 906 阅读 · 0 评论 -
快速排序
快速排序package com.zq.algorithm.sort;/** * Created by zhengshouzi on 2015/11/2. */public class QuickSort { public static void main(String[] args) { int[] a = {49, 38, 65, 97, 76, 13, 27, 49}原创 2015-11-08 19:54:18 · 488 阅读 · 0 评论 -
基数排序
基数排序算法(递归实现):package com.zq.algorithm.sort;/** * Created by zhengshouzi on 2015/11/2. */public class RadixSort { public static void main(String[] args) { int[] a = {135, 242, 192, 93, 3原创 2015-11-07 22:13:29 · 565 阅读 · 0 评论 -
计数排序
计数排序描述: 对每一个输入元素x, 确定小于x的元素个数。利用这一信息,就可以直接把x放到它在输入数组中的位置上。例如,有17个元素小于x, 则x就应该放在第18个输出位置上。当有几个元素相同时候,这一方案需要略作修改。修改: 只要知道x 有几个元素,假如这里x有2个元素,那么将第1个x放在第18个元素,第2个x放在第19个元素。如果这时候有一个y 元素=x+1,那么y元素所放原创 2015-11-07 21:42:36 · 444 阅读 · 0 评论 -
动态规划-钢条切割(java)
数据结构与算法系列源代码:https://github.com/ThinerZQ/AllAlgorithmInJava 本文源代码:https://github.com/ThinerZQ/AllAlgorithmInJava/blob/master/src/main/java/com/zq/algorithm/dynamicprogrammin/SteelBar.java如果代码链接失效了,麻烦评原创 2015-11-25 21:45:49 · 3367 阅读 · 2 评论