算法学习1-插入排序

学习算法,简单做了个小练习,插入算法:1<scripttype="text/javascript">2varn=100;3vararray=newArray(n);4//用A来进行排序5varA=newArray();6//生成100个随机数的数组7for(vari=0;i<array.length;i++)8{9array[i]=Math.floor(Math.random()*n);10document.writeln(array[i]);11}12//插入算法函数13functioninsertSort()14{15A[0]=array[0];16varj=1;17vari=0;18for(j;j<array.length;j++)19{20//从第二个数开始把已经有的数组中的数据赋值给A,然后排序21A[j]=array[j];22varkey=array[j];23i=j-1;24//当前数据比已经排好序的数据最末尾要小时,则要插入。使用循环,直到把这个数插入到比它大的第一个数前面25//相当于对当前数据和已经排好序的做一次冒泡排序,小的冒到前面去26...
代码星球 代码星球·2021-02-21

jquery鼠标点击窗口或浮动层以外关闭层【阻止冒泡事件】

$(".up-lista.th1").click(function(){$(this).next("ul#up-list-ul").show();});$(document).mousedown(function(e){var_con=$("#up-list-ul");if(!_con.is(e.target)&&_con.has(e.target).length===0){$("#up-list-ul").hide();}}) ...

快速排序实例

快速排序函数:/*quick_sort.h*/#ifndef_QUICK_SORT_H#define_QUICK_SORT_H#defineCUTOFF(3)voidquick_sort(intarray[],intn);//快速排序的驱动例程intmedian3(intarray[],intleft,intright);//实现三数中值分割voidqsort(intarray[],intleft,intright);//快速排序主例程#endif/*quick_sort.c*/#include"quick_sort.h"#include"common.h"#include"insertion_sort.h"voidquick_sort(intarray[],intn){qsort(array,0,n-1);}intmedian3(intarray[],intleft,intright){intcenter=(left+right)/2;if(array[left]>array[center])swap(&array[left],&array[center]);i...
代码星球 代码星球·2021-02-21

归并排序实例

通用函数:/*common.h*/#ifndef_COMMON_H#define_COMMON_Hvoidswap(int*ap,int*bp);voidprint_array(constintarray[],intn);#endif/*common.c*/#include"common.h"#include<stdio.h>voidswap(int*ap,int*bp){inttmp;tmp=*ap;*ap=*bp;*bp=tmp;}voidprint_array(constintarray[],intn){inti;for(i=0;i<n;i++)printf("%d",array[i]);printf("");}归并排序函数:/*merge_sort.h*/#ifndef_MERGE_SORT_H#define_MERGE_SORT_Hvoidmerge(intarray[],inttmparray[],intlpos,intrpos,intrightend);voidmsort(intarray[],inttmparray[],intleft,intright...
代码星球 代码星球·2021-02-21

排序实例

通用函数:/*common.h*/#ifndef_COMMON_H#define_COMMON_Hvoidswap(int*ap,int*bp);voidprint_array(constintarray[],intn);#endif/*common.c*/#include"common.h"#include<stdio.h>voidswap(int*ap,int*bp){inttmp;tmp=*ap;*ap=*bp;*bp=tmp;}voidprint_array(constintarray[],intn){inti;for(i=0;i<n;i++)printf("%d",array[i]);printf("");}堆排序函数:/*max_heap_sort.h*/#ifndef_MAX_HEAP_SORT_H#define_MAX_HEAP_SORT_Hvoidperc_down(intarray[],inti,intn);voidheap_sort(intarray[],intn);#endif/*max_heap_sort.c*/#include"max_he...
代码星球 代码星球·2021-02-21

希尔排序实例

实例功能:接收一个含有整数元素的数组和一个包含元素个数的整数,将数组中的元素从小到大重新排序。并输出排序前后的数组。下面以模块划分的思想来实现此功能。打印数组元素模块:/*common.h*/#ifndef_COMMON_H#define_COMMON_Hvoidprint_array(constintarray[],intn);#endif/*common.c*/#include"common.h"#include<stdio.h>voidprint_array(intarray[],intn){inti;for(i=0;i<n;i++)printf("%d",array[i]);printf("");}希尔排序模块:/*shell_sort.h*/#ifndef_SHELL_SORT_H#define_SHELL_SORT_Hvoidshell_sort(intarray[],intn);#endif/*shell_sort.c*/#include"shell_sort.h"voidshell_sort(intarray[],intn){inti,j,increm...
代码星球 代码星球·2021-02-21

插入排序实例

实例功能:接收一个含有整数元素的数组和一个包含元素个数的整数,将数组中的元素从小到大重新排序。并输出排序前后的数组。下面以模块划分的思想来实现此功能。打印数组元素模块:/*common.h*/#ifndef_COMMON_H#define_COMMON_Hvoidprint_array(constintarray[],intn);#endif/*common.c*/#include"common.h"#include<stdio.h>voidprint_array(intarray[],intn){inti;for(i=0;i<n;i++)printf("%d",array[i]);printf("");}插入排序模块:/*insertion_sort.h*/#ifndef_INSERTION_SORT_H#define_INSERTION_SORT_Hvoidinsertion_sort(intarray[],intn);#endif/*insertion_sort.c*/#include"insertion_sort.h"voidinsertion_sort(in...
代码星球 代码星球·2021-02-21

桶式排序

桶式排序算法描述:如果我们有N个整数,范围从1到M(或从0到M-1),我们可以利用这个信息得到一种快速的排序,叫做桶式排序(bucketsort)。我们留置一个数组,称之为Count,大小为M,并初始化为零。于是,Count有M个单元(或桶),开始时他们都是空的。当Ai被读入时,Count[Ai]增1。在所有的输入被读进以后,扫描数组Count,打印输出排好序的表。该算法花费O(M+N)。引自《数据结构与算法分析——C语言描述》下面是对上述算法的更详细描述:对于一组有界的整数,比如有N个数,它们的取值为[1,M],那么对于这样的一组数的排序,可以使用桶式排序。假设这一组整数存储在一个数组A中,桶式排序的基本思想是维护一个count数组,这个数组有M个单位(相当于M个桶),在读入A中的数据A[i]时,count[A[i]]加1,也即是把A[i]放进count的一个桶里,数据读取完成排序即完成。扫描count数组的元素,并顺序输出非0项的index(count[index]为多少就输出多少次)。很显然桶式排序的时间为扫描A数组N个元素的时间加上扫描count数组M个元素的时间,于是为O(M...
代码星球 代码星球·2021-02-21

字节序及字节排序函数

主机字节序:多于一个字节的数据类型(多字节数据类型)在内存中的存放顺序叫主机字节序。最常见的字节序有两种:小端字节序和大端字节序。小端字节序:LittleEndian,简称LE,将数据的最低字节放在内存的起始位置。也就是说,内存地址较低的字节位存放数据的低位字节,内存地址较高的字节位存放数据的高位字节。可以简记为:高高低低。大端字节序:BigEndian,简称BE,将数据的高字节放在内存的起始位置。也就是说,内存中地址较低的位存放数据的高位字节,内存地址较高的字节位存放数据的低位字节。可以简记为:高低低高。术语“小端”和“大端”表示多字节值的哪一端(小端或大端)存储在该值的起始地址。小端存储在起始地址就是小端字节序;大端存储在起始地址就是大端字节序。网络字节序标准规定为大端字节序。不同平台上会对主机字节序进行转化,成为网络字节序后再进行传送,到主机后再转化为主机字节序。#include<netinet/in.h>uint16_thtons(uint16_thost16bitvalue);uint32_thtonl(uint32_thost32bitvalue);均返回:网络...
代码星球 代码星球·2021-02-21

排序命令sort

Unix和Linux自带的sort命令功能非常强大,其主要功能是对文本内容按不同的方法排序。它不仅可以按一个或多个字段排序,还可以合并文件。使用sort处理一些较大的文件时,可能处理速度会比较慢,但却非常有效。命令格式:sort[option][file]sort处理的文本可以来自一个文本文件,也可以来自标准输入和管道等。常用选项:b:按字典顺序进行排序,忽略前面的空格或制表符。d:按字典顺序进行排序,将除空格和字母以外的字符排除。f:忽略大小写。g:根据数值进行排序,默认从小到大(可以配合r使用按数值从大到小排序)。i:只考虑可打印的字符。M:将字符按月份进行比较,例如JAN<…<DEC。n:按数值进行比较排序,默认从小到大(可以配合r使用按数值从大到小)。r:反向排序(按首个数字从大到小,而不是按数值从大到小,字母按逆序)。c:测试文件内容是否已经进行了排序,若无任何返回信息,则表示已经执行了排序操作。k:指定排序的关键字。m:合并已经排序的文件,不进行排序。o:将结果写入文件内,不再输出到标准输出。s:通过屏蔽最后的分类进行稳定排序。t:使用指定的字符作为字段分隔符。...
代码星球 代码星球·2021-02-21

按列排序,行变换

1.importnumpyasnpZ=np.random.randint(0,10,(5,5))print("排序前:",Z)print("Z[:,2]:",Z[:,2],type(Z[:,2]))print("Z[:,2].argsort:",Z[:,2].argsort())print("Z[:,2].argsort:",Z[Z[:,2].argsort()])print(Z[np.array([3,4,1,2,0])])print(Z[[3,4,1,2,0]])排序前:[[73153][10886][87136][73297][53550]]Z[:,2]:[18125]<class'numpy.ndarray'>Z[:,2].argsort:[02341]Z[:,2].argsort:[[73153][87136][73297][53550][10886]]----------------------->Z[列表或np数组]都是行变化[[73297][53550][10886][87136][73153]][[73297][53550][10886][87136...
代码星球 代码星球·2021-02-20

sort排序以及随机排序

今天来说一下数组中比较强大的排序方法sort。sort()将在原数组上对数组元素进行排序,即排序时不创建新的数组副本。如果调用方法sort()时没有使用参数,将按字母顺序(更为精确地说,是按照字符编码的顺序)对数组中的元素进行排序。要实现这一点,首先应把数组的元素都转换成字符串(如果有必要的话),以便进行比较。如果想按照别的顺序进行排序,就必须提供比较函数,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。比较函数应该具有两个参数a和b,其返回值如下:如果根据你的评判标准,a小于b,在排序后的数组中a应该出现在b之前,就返回一个小于0的值。如果a等于b,就返回0。如果a大于b,就返回一个大于0的值。注意,数组中undefined的元素都排列在数组末尾。即使你提供了自定义的排序函数也是这样,因为undefined值不会被传递给你提供的orderfunc。举例说明:从小到大规律排序:vararr=[1,3,45,64,43,32];arr.sort(function(a,b){returna-b;});//从小到大排序console.log(arr);//[1,3,32,4...
代码星球 代码星球·2021-02-20

Java8 使用 stream().sorted()对List集合进行排序

集合对象以学生类(StudentInfo)为例,有学生的基本信息,包括:姓名,性别,年龄,身高,生日几项。使用stream().sorted()进行排序,需要该类实现Comparable接口,该接口只有一个方法需要实现,如下:publicintcompareTo(To);有关compareTo方法的实现说明,请参考:Java关于重写compareTo方法我的学生类代码如下:importjava.time.LocalDate;importjava.util.List;publicclassStudentInfoimplementsComparable<StudentInfo>{//名称privateStringname;//性别true男false女privateBooleangender;//年龄privateIntegerage;//身高privateDoubleheight;//出生日期privateLocalDatebirthday;publicStudentInfo(Stringname,Booleangender,Integerage,Doubleheight,L...

Mysql建立数据库时字符集与排序规则的选择

  在MySQL中,字符集和排序规则是区分开来的,你可以单独设置字符集和排序规则。  MySQL字符集和排序规则有关联而且还不是必选项,如果字符集和排序规则都不填写,Mysql会做默认处理;或者设置其一,比如设置字符集,会默认设置了与字符集相应的排序规则   我们建立数据库是总要涉及到字符集和排序规则的选择问题?怎么选择呢,有什么区别呢?一、字符集  先说字符,字符(Character)是各种文字和符号的总称,包括各国家文字、标点符号、图形符号、数字等。  字符集(Characterset)是多个字符的集合,常见字符集名称:ASCII字符集、GB2312字符集、BIG5字符集、GB18030字符集、Unicode字符集等。计算机要准确的处理各种字符集文字,就需要进行字符编码,以便计算机能够识别和存储各种文字。  字符编码(Characterencoding)也称字集码,是把字符集中的字符通过编码成为指定集合中某一对象(例如:比特模式、自然数序列、8位组或者电脉冲),以便文本在计算机中存储和通过通信网络的传递。常见的例子包括将拉丁字母表编码成摩斯电码和ASCII。其中,ASCI...

多关键字排序实验

一、实习目的   了解多关键字的使用范围;编写程序实现对汽车牌照的排序。二、实验原理了解多关键字的使用范围,并实现对牌照按多关键字排序后的快速查找。【问题描述】为加快速度需先对数据记录按关键字排序,在汽车数据模型中,汽车是关键字,而且是具有结构特点的一类关键字。因为汽车牌照是汉字,字母和数字混编的,例如:AD7328。这种记录集合是一个适于利用多关键字进行排序的典型例子。【基本任务】(1)利用链式基数排序方法实现排序。(2)在排序的基础上,利用二分查找的思想,实现对汽车记录按关键字的查找。三、参考程序#include<stdio.h>#include<stdlib.h>structsort{intzi[3];};sorta[8]={{1,2,3},{1,6,3},{1,0,9},{7,3,1},{2,3,9},{1,4,5},{7,1,8},{2,3,8}};voidpaixu(sort*a,intradix,intsize,intk){int*temp,i,number=0,number1=0,j,z;sort*b;z=k;tem...
代码星球 代码星球·2021-02-18
首页上一页...678910...下一页尾页