简述 插入排序是一种简单直观的排序方法,其基本思想在于每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子序列中,直到全部记录插入完成。插入排序主要有三个算法:直接插入排序、折半插入排序和希尔排序。 直接插入排序 算法思想 直接插入排序的简单思想就是不断地将一个元素插入到一个有序的序列中, ...
分类:
编程语言 时间:
2020-04-16 19:17:00
阅读次数:
68
板子: 插入后,每次与中间值相比较,再与左半部分中间值比较,再与右半部份中间值比较,直到找到它自己的位置, 待排序数据:2,1,6,7,4 数据部分:原文https://www.jianshu.com/p/93926f680184 取第一个元素作为有序表,剩余的元素作为无序表 其中有序表:2;无序表 ...
分类:
编程语言 时间:
2020-04-13 19:26:47
阅读次数:
58
训练赛上一题,当时没做出来,Orz太弱了 The SUM problem can be formulated as follows: given four lists A, B, C, D of integer values, compute how many quadruplet (a, b, c ...
分类:
其他好文 时间:
2020-04-06 19:02:19
阅读次数:
77
排序算法 直接插入排序:将数组中的所有元素依次跟前面已经排好的元素相比较,如果选择的元素比已排序的元素小,则交换,直到全部元素都比较过 希尔排序:将待排序数组按照步长gap进行分组,然后将每组的元素利用直接插入排序的方法进行排序;每次将gap折半减小,循环上述操作;当gap=1时,利用直接插入,完成 ...
分类:
编程语言 时间:
2020-04-06 09:46:47
阅读次数:
78
1.常用的查找算法 1) 顺序(线性)查找 2) 二分查找/折半查找 3) 插值查找 4) 斐波那契查找 2.查找 1)线性查找 A.题目: 有一个数列[1,43,22,-10,0],判断数列中是否包含此名称,如果找到了,就提示找到,并给出下标值。 B,思路: 逐一查找 C.代码 package c ...
分类:
编程语言 时间:
2020-03-25 19:10:32
阅读次数:
53
一、什么是二分查找 二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列 二、算法复杂度 二分查找的基本思想是将n个元素分成大致相等的两部分,取a[n/2]与x做比较,如果x=a[n/2],则找到x ...
分类:
其他好文 时间:
2020-03-24 00:50:07
阅读次数:
74
#include <iostream> using namespace std; //快排 void quickSort(double *q ,int n) //一个double型数组还有一个代表这个数组的位数。 { double *left,*right; left = &q[0]; right ...
分类:
编程语言 时间:
2020-03-21 23:16:49
阅读次数:
63
二分查找也称折半查找(BinarySearch),它是一种效率较高的查找方法。但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列。#include<stdio.h>#include<stdlib.h>intmain(){intarr[]={1,2,3,4,5,6,7,8,9,10};intleft=0;intright=sizeof(arr)/siz
分类:
编程语言 时间:
2020-03-19 09:25:35
阅读次数:
75
1 //分治思想:将大问题拆成小问题逐一解决 2 //折半查找法:不断缩小一半查找的范围,知道达到目的,效率较高。 详情见:https://fishc.com.cn/thread-27964-1-1.html 3 4 //折半查找法(迭代) 5 #include<stdio.h> 6 7 int s ...
分类:
其他好文 时间:
2020-03-14 12:37:54
阅读次数:
36
0.引入 1.插入排序 每次都认为前面的已排好序,将当前的数与其前面的数进行比较,如果前面的数大于它,则交换位置,不断交换直到前面的数比它小 2.折半查找 在有序数组里,跳跃式递归查找。 问题描述:求一个n个数列表的第k个最小元素。(无序情况,有折半思想和快排思想) 利用减治法的思想,找到一个基准数 ...
分类:
编程语言 时间:
2020-03-14 10:52:07
阅读次数:
53