Sort Algorithm

sortAlgorithm 系统快排源代码,实现快速排序和插入排序,详见文档 立即下载

1. DirectInsert sort

  直接插入排序,将所要排序的数字放到有序队列中

void DirectInsert(int a[10] , int num){
	int i = 0;
	int j ;
	int temp ;
	for( ; i < num ; i++){
		for( j = i ; j > 0 ; j-- ){
			if(a[j] < a[j-1]){
				temp = a[j-1];
				a[j-1] = a[j];
				a[j] = temp ;
			}
		}
	}
}

2 BiInsert sort

 折半插入排序,使用折半查找法进行插入

void BiInsert(int a[10] , int num){
	  int i , j , low , high , mid , temp;
	  for( i = 1 ; i < num ; i++){
	    low = 0 ; 
		high = i-1 ;
		while(low <= high){
			mid = (low + high)/2;
			if(a[mid] > a[i]){
				high = mid -1 ;
			}
			else{
				low = mid + 1;
			}
		}
		temp = a[i];
		for( j = i-1 ; j >=  high + 1 ; --j){
			a[j+1] = a[j];
		}
		a[high + 1] = temp ;
	  }
}

3. ShellSort

  哈希排序,在一定步长的情况下进行排序,逐渐减小步长,直到步长为1.

void ShellSort(int a[10] ,int  num){
	int dk ;//step length
	int i ;
	int temp ;
	int j ;
	for(dk = num/2 ; dk >= 1 ; dk /= 2){//change the length of the step
		for(i = dk ; i < num  ; i++){//increase the num
			if(a[i] < a[i-dk]){
				temp = a[i];
				for( j = i - dk ; j >= 0 && temp < a[j] ; j -= dk){//find the right location to insert
					a[j + dk] = a[j];
				}
				a[j + dk] = temp ;//the right location to insert
			}
		}
	}
}

4 Bubble Sort

 冒泡排序,最大下沉

void BubbSort(int a[10] , int num) {
	int i , j , temp;
	for(i= 0 ; i < num ; i++){
		for( j = 0 ; j < num - i - 1 ; j++){
			if(a[j] > a[j+1]){
				temp = a[j] ;
				a[j] = a[j+1];
				a[j+1] = temp ;
			}
		}
	}
}

5 QuickSort

   根据一个基点,将大于基点的值放在右边,小于基点的值放在左边

int Partition(int a[10],int low ,int high){
	int pivot = a[low];
	while(low < high){
		while(low < high && a[high] > pivot)
			--high;
		a[low] = a[high];
		while(low < high && a[low] < pivot)
			++low ;
		a[high] = a[low];
	}
	a[low] = pivot;
	return low;
}

void FastSort(int a[10] , int low , int high){
	 if(low < high){
		 int pivotpos = Partition(a , low , high);
		 FastSort(a , low ,pivotpos -1);
		 FastSort(a , pivotpos+1 , high);
	 }
}

6 SelectionSort

 选择未排序中最大的值与当前值对调

void ChooseSort(int a[10] , int num){
	int i , j ,temp , loc ,min ; 
	for( i = 0 ; i < num ; i++){
		min = a[i];
		loc = i;
		for( j = i ; j < num ; j++){
			if(min > a[j]){
				min = a[j];
				loc = j;
			}
		}
		a[loc] = a[i];
		a[i] = min;
	}
}

7 Heapsort

使用最大堆,将每次选出来的最大值放在最后一位。

//the exchange the number from i to the son to choose the big
void Adjustdown(int a[10] , int i , int num){
	int temp = a[i];
	int j ;
	for( j = 2*i +1  ; j < num ; j = j*2 + 1){
		if(j < num && a[j] < a[j+1]){
			j++;
		}
		if(temp >= a[j])break;
		else{
			a[i] = a[j];
			i = j ;
		}
	}
	a[i] = temp;
}
//from the last father to the root to exchange the number
void BuildMaxHeap(int a[10] , int num){
	int i  ;
	for( i = num / 2 ; i >= 0 ; i-- ){
		Adjustdown( a , i ,num);
	}
}
//put the min of the number to the last each time
void HeapSort(int a[10] , int num){
	int temp;
	BuildMaxHeap(a, num);
	for(int m = num-1  ; m >= 0 ; m--){
		temp = a[m];
		a[m] = a[0];
		a[0] = temp;
		Adjustdown(a ,0, m-1);
	}
}
//to insert the numeber and change the order
void Insert(int a[10] , int num , int e){
	int temp = a[num];
	int j , i ;
	for(i = (num -1)/2 , j = num ; i >= 0 ;  ){
		if(temp > a[i]){
			a[j] = a[i];
			j = i ;
			i = (i-1)/2;
		}
		a[i] = temp;
	}
}

 

Python自动化神器:5分钟搞定PSCAD仿真波形图导出到Word(附WPS兼容方案) 本文介绍如何利用Python自动化库快速将PSCAD仿真波形图导出到Word或WPS,大幅提升电力系统仿真工程师的工作效率。通过精准坐标定位、智能排版和批量处理功能,实现仿真报告的自动化生成,同时提供WPS兼容方案,适用于不同办公环境。 阅读详情

相关推荐

内核工作FAST‘25 Artifact Evaluation流程记录

在我们的paper中,复现需要用到傲腾持久化内存,因此,需要AE Reviewer访问到内网服务器中。我们的思路是购买云服务器,将其作为跳板机,内网服务器通过SSH反向代理与公网服务器建立隧道,AE Reviewer通过隧道访问内网服务器。我们在AE过程中使用。然后,把一切复现需要的代码环境,在chroot里面配置完成。

不定期更新系统使用、编程小技巧,哔哩哔哩账号:https://space.bilibili.com/399455629,欢迎关注 1215

algorithm头文件下的常用函数之sort()

顾名思义,sort()就是用来排序的函数,它根据具体情形使用不同的排序方法,效率较高。一般来说,不推荐使用C语言中的qsort()函数,原因是qsort()用起来比烦琐,涉及很多指针的操作。而且sort()在实现中规避了经典快速排序中可能出现的会导致实际复杂度退化到O(n^2)的极端情况。希望读者能通过这篇介绍来轻松愉快地使用sort函数。 1.如何使用sort()排序 sort()函数的使用...

分享包括但不限于计算机基础知识、数据结构与算法、Golang技术栈。年与时驰,意与日去,遂成枯落,多不接世,悲守穷庐,将复何及! 4390

RK3568驱动XS9922B:AHD/CVBS双模摄像头兼容性实战

在嵌入式视频开发中,摄像头驱动的稳定性与兼容性往往决定项目交付质量。Linux内核的V4L2框架提供了统一的视频采集抽象,从v4l2_subdev子设备到media controller链路,再到用户态视频节点,每一层都需要精确配置。对于RK3568这类边缘计算平台,其MIPI CSI接口和自研ISP配合RKCIF,构成了完整的多路视频接入通路。当需要接入模拟视频解码芯片时,驱动设计就需同时考虑AHD高清协议与CVBS标清信号的模式切换、格式协商以及寄存器配置。XS9922B作为支持双模输入的解码芯片,可与

weixin_34216614的博客 350

排序算法--Sort Algorithm

一、排序算法的概念: 排序也称排序算法 (Sort Algorithm),排序是将一 组数据,依指定的顺序进行排列 的过程 二、排序算法的分类: 1) 内部排序: 指将需要处理的所有数据都加载 到内部存储器中进行排序。 2) 外部排序法: 数据量过大,无法全部加载到内 存中,需要借助外部存储进行 排序 三、算法的时间复杂度 时间频度:一个算法中的语句执行次数称为语句频度或时间频度。记为T(n) 时间复杂度:一般情况下,算法中的基本操作语句的...

YZG ' BLOG 1797

一生一芯预学习:从零搭建Verilator仿真环境与NVBoard实战

本文详细介绍了如何从零搭建Verilator仿真环境,并完成NVBoard实战项目,为'一生一芯'预学习提供完整指导。内容包括环境配置、工具安装、波形生成、自动化构建及可视化调试技巧,帮助初学者快速掌握数字逻辑设计与仿真验证的核心技能。

keras9composer的博客 701

易灵思FPGA实战:T35F324的PLL硬核配置全流程(附避坑指南)

本文详细解析了易灵思T35F324 FPGA中硬核PLL的配置全流程与核心避坑点。内容涵盖从架构理解、Interface Designer参数设置、VCO范围校验,到时钟网络冲突分析与动态重配置等实战环节,重点解决了引脚分配、资源约束和常见报错问题,为工程师提供了一套清晰可靠的配置指南。

u9v0w的博客 216

C++ 实现十大排序算法

教你手撕排序,这里有一个概念就是稳定排序。假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在原序列中,r[i]=r[j],且r[i]在r[j]之前,而在排序后的序列中,r[i]仍在r[j]之前,则称这种排序算法是稳定的;否则称为不稳定的。并不是其算法复杂度的稳定,注意一下 代码均经过测试,如果找到代码bug可以留言 算法(Algo...

weixin_38169798的博客 363

智能优化电池:基于单片机的电池管理系统

设计简介: 本设计是基于单片机的电池管理系统,主要实现以下功能: 可通过LCD1602显示温度、电压电流值; 可通过按键调整温度、电压和电流的阈值; 用ADC0832将模拟量转换为数字量。 标签:51单片机、LCD1602、ADC0832 效果图: 总体资料: 原理图: 软件设计流程: 系统框图: 本设计以STC89C52单片机为核心控制器,加上其他的模块一起组成电动汽车的电池管理的整个系统,...

专注单片机实战教学,分享单片机学习资料 376

C++ 头文件 —— algorithm 常用函数及其用法(更新中)

sort 函数是 algorithm 中的排序函数,相较于 C stdlib 中的 qsort 函数,用法更简单,也更广泛,同时内部实现也要更复杂。注意:这里的参数是数组的地址。

qq_72585517的博客 2714

河洛理数【陈抟】先天命卦大运

首先我们把前文提及的天干和地支进行上下划分,那么每一年的年份都是使用一天干和一地支进行组合,即如上的甲子、癸亥,那么下一年就是天干和地支都进行顺延一位进行组合,如甲子年下一年就是乙丑年,但是由于天干是十个、地支有十二个,所以要遍历一遍的话,就正好是 60 年。1924 年 ~ 1983 年(中元) 1984 年 ~ 2043 年(下元) 2044 年 ~ 2103 年(上元)2、找到卦中第一个(从下往上,也就是初爻、二到五爻、上爻)对应时辰的阴阳爻。5、也就是所属的元堂爻。

Daniel专栏 2077

Unity之Hololens2开发MRTK Profile详解

配置 MRTK 的主要方式之一是使用基础包中的配置文件。场景中的主要对象具有活动配置文件 - 一个 ScriptableObject。顶级 MRTK 配置配置文件包含主核心系统的每个核心的子配置文件数据,每个主核心系统都旨在配置其相应子系统的行为。此外,这些子配置文件也是 ScriptableObjects,因此可以包含对低它们一级的其他配置文件对象的引用。实质上,有一个包含已连接配置文件的完整树,这些配置文件构成了如何初始化 MRTK 子系统和功能的配置信息。

TxNet 1036

Algorithm头文件--sort()函数

在STL标准函数库中提供了一种sort()排序函数,其底层的实现方式是快速排序。该函数的原型:其中的三个参数分别表示:1)start是迭代器的起始地址。2)end是结束的地址(最后一位要排序的地址)。3)cmp是可选参数,用来指定排序的方法,当没有指定时,默认升序。即排序的区间是 [ start,end ) ,排序的方式是默认升序。这里我首先给出两种定义cmp的方法以及传入它们之后得到的结果。//首先第一种{}//然后第二种{}//首先,不带cmp参数,默认升序。

PL_hfc的博客 2257

dify upload存在SSRF漏洞

Dify 是一个用于构建 AI 应用程序的开源平台。

nnn2188185的博客 1481

【C++数据结构算法】排序sort---实用Algorithm函数详解

sort进行排序操作---十分隐蔽的使用规范!!

起床气233的博客 874

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

C++ 标准库 <algorithm> 排序函数 sort

摘要:C++ algorithm库中的sort函数可以通过数组的初始地址和结束地址对数组元素进行自定义排序。

AF_MAX的博客 7496

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

C++基础之algorithm库 (sort, unique, reverse)

文章目录前言一、algorithm库简介二、algorithm的重要函数1.sort排序2.reverse逆序3.unique数组去重写在最后 前言 本文章长期更新 以下是正文内容 一、algorithm库简介 暂时先鸽一下 二、algorithm的重要函数 1.sort排序 代码如下:注意第一个参数是起始位置的内存地址位置,第二个参数是参与排序区间结束位置,前闭后开。 sort(a + 1, a + n + 1); 更加自定义的排序:通过构造一个自己的cmp(compare)函数,来对一些自定..

m0_49288319的博客 2301

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

晴问-algorithm头文件之sort函数

【代码】晴问-algorithm头文件之sort函数。

m0_46238930的博客 128

c++ 学习记录 vector容器使用algorithm库的sort() 排序函数

algorithm库的sort() 排序函数的使用方法 参考:C++ STL sort 函数的用法 1、sort函数包含在头文件为#include的c++标准库中 2、sort函数有三个参数: (1)第一个是要排序的数组的起始地址。 (2)第二个是结束的地址(最后一位要排序的地址) (3)第三个参数是排序的方法,可以是从大到小也可是从小到大,还可以不写第三个参数,此时默认的排序方法是从小到大排序。 vector容器获取首地址: 使用 begin()函数 vector容器获取结束地址: 使用 end()函数

然、的博客 870

晴问-algorithm头文件之sort函数III

【代码】晴问-algorithm头文件之sort函数III。

m0_46238930的博客 148

调用c++标准库的algorithm中的sort对vector中的自定义类型进行排序

调用c++标准库的algorithm中的sort对vector中的自定义类型进行排序 #include <iostream> #include <vector> #include <set> #include <tuple> #include <algorithm> #include <random> #include <chrono> using namespace std; class ValueIJ.

love code, love life. 625

C++ algorithm的sort函数总结

sort函数 sort对给定区间进行排序,支持各种数据类型,迭代器,结构体,自定义排序规则 stable_sort 对给定区间进行稳定排序,且可保证相等元素的原本相对次序在排序后保持不变 partial_sort 对给定区间部分元素排序 partial_sort_copy 对给定区间部分元素排序并复制 partition 使得符合某个条件的元素放在前面 stable_partition 相对稳定...

天行健,地势坤 2073

STL中的sort函数和algorithm中的sort函数

笔试阿里的时候搞到我了,一直想着对list用之前的sort排序,结果一直报错。。。 (1)vector的迭代器是随机访问迭代器,支持泛型算法的sort及其算法。可以使用STL中的sort。 //vector排序 #include <iostream> #include <string> #include <vector> #include <algo...

qq_40123329的博客 363

STL Sort Algorithm

这个星期看了侯捷先生《STL 源码剖析》算法部分,基本看完了,其中算法比较多,我就重点下Sort在SGI STL中的实现。 1. sort 函数的实现是这样的: template inline void sort(RandomIAccessIterator first , RandomAccessIterator last> { if ( first != last) {

UPing In The Road 985

algorithm头文件下的sort()

1.简单的sort使用 必须加入头文件#include< algorithm >和using namespace std; 使用如下: sort(首元素地址(必填),尾元素地址的下一个地址(必填),比较函数(选填)); (1)对于整数 #include<iostream> #include<algorithm> using namespace std; int...

Running Snail 2884

[Algorithm] Radix Sort Algorithm

For example we have the array like this: [53, 89, 150, 36, 633, 233] First step is using Counting sort for last digit, in our example is: [53, 89, 150, 36, 633, 233] [3, 9, 0, 6, 3, 3...

weixin_30415113的博客 184

Insertion sort algorithm

Insertion sort is an efficient algorithm for sorting a small number of elements, which costs O(n2).The operation of INSERTION-SORT on the array A = 〈5, 2, 4, 6, 1, 3〉. Array indices appear above the rectangles, and values stored in the array positions

citylove的专栏 949
上一篇: 工厂方法模式
下一篇: Window10 && Ubuntu18.04 双系统安装后,使用EasyBCD 进入Grub 界面 问题解决。
陌逸_逺
博客等级 码龄9年 13粉丝 49原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值