选择排序:一种重要的基于交换的排序算法。 基本思想:序列分为有序和无序两个子序列,每次从无序列种选择最小的和有序列最后一个交换。 大致过程: [9, 12 4 0 7 21 3 5] --> 0最小和9交换 [0 …
标签:算法
冒泡排序,插入排序以及选择排序浅析
一.冒泡排序 算法简述 冒泡排序法(也叫泡沫算法,鸡尾酒算法),是一种简单但运行效率最慢的排序算法,它重复地走访将要排序的元素,对两两相邻的元素进行比较,若发现其顺序与我们将要排列的顺序不符则将这两个元素交换位置,经过每…
如果系统要使用超大整数(超过long长度范围),请你设计一个数据结构来存储这种超大型数字以及设计一种算法来实现超大整数加法运算
public class T1 { /** * 如果系统要使用超大整数(超过long长度范围),请你设计一个数据结构来存储这种超大型数字以及设计一种算法来实现超大整数加法运算)。 */ @Test public void…
五大常用算法——分治算法详解及经典例题
一、基本概念 在计算机科学中,分治法是一种很重要的算法。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单…
线性表
线性表 什么是线性表 线性表是一种最简单的线性结构。 什么是线性结构?简单地说,线性结构是一个数据元素的有序(次序)集合。它有四个基本特征: 在数据元素的非空有限集中, ①存在惟一的一个被称做”第一个”的数据元素; ②存…
编写Java程序,计算100~999之间的全部“水仙花数”的平均值。
import java.util.ArrayList; import java.util.List; public class ShuiXianHuaNumber { /** * 编写Java程序,计算100~999之间…
排序算法(一)
前言 排序算法是多用于解决问题的中间步,也是算法中基础而重要的部分。 最近在面试过程中,一旦问到关于算法的内容,就会涉及到排序算法(其中频率较高的是冒泡法排序)和查找算法,今天就先写一下排序方面的内容。虽然都是很基础性的…
LeetCode: Max Points on a Line [149]
【题目】 Given n points on a 2D plane, find the maximum number of points that lie on the same straight l…
LeetCode: Copy List with Random Pointer [138]
【题目】 A linked list is given such that each node contains an additional random pointer which could point to any…
LeetCode: Candy [135]
【题目】 There are N children standing in a line. Each child is assigned a rating value. You are giving …
高精度加减法
#include <iostream> #include <string> int a[100]={0},b[100]={0}; //初始化数组 int len1=0,len2=0,lenmax=…
只出现一次的数字-LeetCode
题目来源: https://leetcode-cn.com/problems/single-number/description/ 描述: 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那…