第三十二题:把数组排成最小的数 题目描述: 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。…
分类:算法
Java排序算法之归并排序
将两个的有序数列合并成一个有序数列,我们称之为”归并“。 归并排序(Merge Sort)就是利用归并思想对数列进行排序。根据具体的实现,归并排序包括”从上往下“和R…
快速排序
1.递归实现 1.1C语言 #include <stdio.h> void swap(int v[], int left, int right) { int temp = v[left]; v[left] =…
查找算法
一、顺序查找 代码简单易懂,但当数据量大的时候,查找效率极为低下,所以该算法适合小量数据。 查找成功最好的情况是在第一个位置就找到了,算法时间复杂度为O(1) 最坏的情况是在最后一个位置就找到了,时间复杂度为O(n) 关…
LeetCode 6. ZigZag Conversion(Python)兼翻译
6. ZigZag Conversion 转化成锯齿形 本题来自LeetCode OJ 题目翻译 The string "PAYPALISHIRING" is written in a zigzag pattern on…
两个链表相交,要求找出第一个相交的节点
《编程之美》里面有一篇是讲如何判断两链表是否相交,读后觉得原文太过囉嗦。于是,笔者总结了一下,此类问题可以扩展为两大类,分别是: 1、单链表与环问题http://blog.csdn.net/liuxialong/arch…
归并排序(java实现)
原理: 归并排序是利用递归与分治技术将数据序列划分为越来越小的半子表,再对半子表排序,最后利用递归的方法将排好序的半子表合并为越来越大的有序序列。 归并排序算法原理: 对于给定的一组记录(假设有n个记录),首先将每两个相…
破解flashFXP密码全过程
破解flashFXP密码全过程 2008年12月4日 xmxoxo flashFXP是一个FTP客户端,无意中看了一下密码的保存方式,是存在一个INI格式中,突发奇想来破解一下: 先改几个密码保存一下,把密文记下来…
C++实现链表基本操作
LinkList.h LinkList.cpp main.cpp LinkList.h代码如下 #include <iostream> #include <string> using namesp…
O()算法表示分析
前阵子有同学跟我讨论,怎么这个问题用递归方法(O(n^2))比非递归方法(O(n)解决时间还快?按照算法复杂度…
算法:LeetCode240
题目 Write an efficient algorithm that searches for a value in an m x n matrix. This matrix has the following pr…
基于Java的栈实现
栈的定义 栈是计算机科学中非常基础和重要的一种数据结构,它在计算机相关领域中有着广泛的应用,典型的编程语言中的函数调用,编译器便是采取栈这种结构来组织环境的。数据结构就是数据的组织方式,不同的组织方式,对于集合中元素的选…