插入排序之直接插入排序算法

1、什么是插入排序它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。从第二个元素开始r[1],那么将他左边的元素作为一个已经有序的序列,将r[1]按从小到大的顺序插入到有序序列中的合适位置使之成为一个新的有序序列;接着将r[2]插入到左边的有序序列中,使之成为一个新的有序序列,依次类推,直道将所有的元素都遍历完了之后,那么整个数组就是一个从小到大的有序数组了。 2、效果演示    这是需要进行排序的序列     对于第1个元素8来说,它本身就是有序的     再来考虑第2个元素6,因为他比8小,交换一次位置       再来考虑第3个元素2,因为他比8小,交换一次位置    2又比左边的6小,交换一次位置      再来考虑第...
代码星球 代码星球·2021-01-24

选择排序之简单选择排序算法

1、什么是选择排序?选择排序(Selectionsort)是一种简单直观的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。 选择排序是不稳定的排序方法(比如序列[5,5,3]第一次就将第一个[5]与[3]交换,导致第一个5挪动到第二个5后面)。 简单选择排序算法基本思想:例如在一个有n个元素的一个数组中r[n],第一趟在r[0]-r[n-1]中找到其中最小的一个元素,将他与r[0]交换位置;第二趟在r[1]-r[n-1]中找到最小的一个元素,将他与r[1]交换位置;依次类推,第i趟在r[i-1]-r[n-1]中找到最小的一个元素,将他与r[i-1]交换位置,直道将数组中所有元素排序完成。 时间复杂度:O(n^2) 2、简单选择排序算法效果演示  3、算法实现(基于C++代码)/********************************简单选择排序算法实现***********************************/templat...
代码星球 代码星球·2021-01-24

MySQL查询in操作排序

in操作排序先说解决方案:select*fromtestwhereidin(3,1,5)orderbyfield(id,3,1,5);或许有人会注意过,但我以前真不知道SQL:select*fromtablewhereidIN(3,6,9,1,2,5,8,7);这样的情况取出来后,其实,id还是按1,2,3,4,5,6,7,8,9,排序的,但如果我们真要按IN里面的顺序排序怎么办?SQL能不能完成?是否需要取回来后再foreach一下?其实mysql就有这个方法sql:select*fromtablewhereidIN(3,6,9,1,2,5,8,7)orderbyfield(id,3,6,9,1,2,5,8,7);出来的顺序就是指定的顺序了。。。。这个,以前还真的从来没用过,偶尔看到,所以就记录了一下。一是做个笔记,二是希望可以给更多的人看到 MySQL中NOTIN语句对NULL值的处理mysql>SELECTCOUNT(name)FROMCVEWHEREnameNOTIN('CVE-1999-0001','CVE-1999-0002');+-------------...

MongoDB排序异常

com.mongodb.MongoQueryException:Queryfailedwitherrorcode96anderrormessage'Executorerrorduringfindcommand:OperationFailed:Sortoperationusedmorethanthemaximum33554432bytesofRAM.Addanindex,orspecifyasmallerlimit.'onserver 调用方法如下:protected<T>List<T>findByPage(Classclazz,StringcollectionName,intpageNum,intpageSize,StringqueryStr,StringorderKey,Booleanasc){if(StringUtils.isBlank(orderKey)){orderKey="createTime";}try{Iterator<Class>articleMainList=(Iterator<Class>)mongodbSe...
代码星球 代码星球·2021-01-23

Java常用排序算法

排序过程中,全部记录存放在内存,则称为内排序,如果排序过程中需要使用外存,则称为外排序。一般来说外排序分为两个步骤:预处理和合并排序。首先,根据可用内存的大小,将外存上含有n个纪录的文件分成若干长度为t的子文件(或段);其次,利用内部排序的方法,对每个子文件的t个纪录进行内部排序。这些经过排序的子文件(段)通常称为顺串(run),顺串生成后即将其写入外存。这样在外存上就得到了m个顺串(m=[n/t])。最后,对这些顺串进行归并,使顺串的长度逐渐增大,直到所有的待排序的几率成为一个顺串为止。内排序可以分为以下几类:(1)、插入排序:直接插入排序、折半插入排序、希尔排序。(2)、选择排序:简单选择排序、堆排序。(3)、交换排序:冒泡排序、快速排序。外排序可以分为一下几类(既使用内部存储也使用外部存储,内存不够时建议使用):(4)、归并排序(5)、基数排序 稳定性:就是能保证排序前两个相等的数据其在序列中的先后位置顺序与排序后它们两个先后位置顺序相同。再简单具体一点,如果A i==Aj,Ai 原来在 Aj位置前,排序后 Ai &n...
代码星球 代码星球·2021-01-23

thinkphp 让指定id排在前面 TP3.2指定id排序,排在最前面

 //$xm_id='4559';//只让这一个id排在前面也可以$xm_id='4559,4576';$jilu_list=M('数据库表名')->where($jilu_arr)->order('field(xm_id,'.$xm_id.')desc,xm_idasc')->select();//order()里面还可以再加其他条件  查询结果: ...

使用纯C++迭代器编写归并排序

第一次尝试用C++迭代器编写算法,使用的是纯迭代器voidmergeSort(vector<int>::iteratorbeg,vector<int>::iteratorend){//排序区间[beg,end)if(end-beg<2)return;automid=beg+(end-beg)/2;mergeSort(beg,mid);mergeSort(mid,end);//===merge_beg===vector<int>A(beg,mid);//复制前子向量,因为构造有序向量要占用前子向量autoiter_a=A.begin(),iter_b=mid;//分别指向前后子向量起始位置的迭代器autoiter_c=beg;//指向有序向量的起始位置while(iter_a<A.end()||iter_b<end){if(iter_b>=end||(iter_a<A.end()&&*iter_a<*iter_b))*iter_c++=*iter_a++;if(iter_a>=A.end()||...

C# 字典转换成list 排序后 修改其数据 效率对比

字典转换成list排序后修改其数据效率对比 代码:publicList<TreeNode>CreateTree(Dictionary<int,TreeNode>dic){varlist=newList<TreeNode>();foreach(varpairindic){varpid=pair.Value.ParentId;if(pid==0){list.Add(pair.Value);continue;}if(dic.ContainsKey(pid)){varchildren=(List<TreeNode>)dic[pid].children;children.Add(pair.Value);}}Stopwatchsw=newStopwatch();//虽然效率最高但是未改到本身的数据sw.Start();varlist2=dic.Select(c=>c.Value).OrderByDescending(c=>c.Level).Select(c=>{SetType(c);return1;});sw.Stop()...

基于js鼠标拖动图片排序

分享一款基于js的图片排序效果。鼠标拖动图片,重新排列图片的排列顺序。该插件适用浏览器:IE8、360、FireFox、Chrome、Safari、Opera、傲游、搜狗、世界之窗。效果图如下:在线预览   源码下载实现的代码。html代码:<ulid="ul1"><li><imgsrc="images/1.jpg"width="200"height="150"/></li><li><imgsrc="images/2.jpg"width="200"height="150"/></li><li><imgsrc="images/3.jpg"width="200"height="150"/></li><li><imgsrc="images/4.jpg"width="200"height="150"/></li><li><imgsrc="images/5.jpg"width="200"heig...

js 数组随机排序

仅用于个人学习记录javascript数组随机排序1.最简洁的方法:functionrandomsort(a,b){   returnMath.random()>.5?-1:1;//用Math.random()函数生成0~1之间的随机数与0.5比较,返回-1或1}vararr=[1,2,3,4,5];arr.sort(randomsort);2.数组中的sort方法排序无参数是按照字符编码的顺序进行排序。arrayObject.sort(sortby)functionsortby(a,b){   returna<b?-1:1;//如果a<b不交换,否则交换,即升序排列}functionsortby(a,b){   returna>b?-1:1;;//如果a>b不交换,否则交换,即将序排列}...
代码星球 代码星球·2021-01-21

uniapp 事件和阻止冒泡

  <template><view><!--<viewclass="font">{{name}}</view><viewclass="box"@tap="clickevent()">按钮</view>--><viewclass="box1"@tap.stop="box1event()">外面<viewclass="box2"@tap.stop="box2event()">里面</view></view></view></template><script>exportdefault{data(){return{name:"哈哈哈"}},methods:{clickevent:function(){this.name="嘻嘻嘻";},box1event:function(){console.log("点击了外面");},box2event:function(){console.log("点击了里面")}}...
代码星球 代码星球·2021-01-20

初识指令重排序,Java 中的锁

Java语言规范JVM线程内部维持顺序化语义,即只要程序的最终结果与它顺序化情况的结果相等,那么指令的执行顺序可以与代码逻辑顺序不一致,这个过程就叫做指令的重排序。  指令重排序的意义:使指令更加符合CPU的执行特性,最大限度的发挥机器的性能,提高程序的执行效率。看个demopublicstaticvoidmain(String[]args)throwsInterruptedException{intj=0;intk=0;j++;System.out.println(k);System.out.println(j);}上面这段代码可能会被重排序:如下publicstaticvoidmain(String[]args)throwsInterruptedException{intk=0;System.out.println(k);intj=0;j++;System.out.println(j);}此时指令的执行顺序可以与代码逻辑顺序不一致,但不影响程序的最终结果.再看个demopublicclassThreadExample2{staticinti;publicstat...

禁止Grid、TreeGrid列排序和列菜单

Ext的Grid和Treegrid默认提供列菜单的功能,在列菜单中可以进行排序以及控制列显示状态。在实际项目中,往往有些列是不需要用户看到的,因此就必须屏蔽列菜单的功能。1、屏蔽Grid,包括EditorGrid的列菜单方法:在GridPanel应用的ColumnModel中为每一列指定这个配置项。menuDisabled:true 2、屏蔽Treegrid的列菜单功能。由于Treegrid扩展的是TreePanel,其列扩展的是Ext.list.Column。Ext.list.Column本身是没有menuDisabled这个配置项的。方法:在Treegrid的配置项中,增加这个属性。headersDisabled:true...

数组去重,冒泡

1<!DOCTYPEhtml>2<html>3<head>4<metacharset="UTF-8">5<title></title>6<scripttype="text/javascript">78//创建一个数组9vararr=[1,2,3,2,2,1,3,4,2,5];1011//去除数组中重复的数字12//获取数组中的每一个元素13for(vari=0;i<arr.length;i++){14//console.log(arr[i]);15/*获取当前元素后的所有元素*/16for(varj=i+1;j<arr.length;j++){17//console.log("---->"+arr[j]);18//判断两个元素的值是否相等19if(arr[i]==arr[j]){20//如果相等则证明出现了重复的元素,则删除j对应的元素21arr.splice(j,1);22//当删除了当前j所在的元素以后,后边的元素会自动补位23//此时将不会在比较这个元素吧,我需要在比较一次j所在...
代码星球 代码星球·2021-01-17
首页上一页...1415161718...下一页尾页