当前位置:首页 > 公众号精选 > 玩转嵌入式
[导读]一、冒泡排序冒泡排序(BubbleSort),是一种计算机科学领域的较简单的排序算法。它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果他们的顺序(如从大到小、首字母从A到Z)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排...

一、冒泡排序
冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。

它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果他们的顺序(如从大到小、首字母从A到Z)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。
以下博京备用网址可以直接运行:

#include using namespace std; template //整数或浮点数皆可使用 void bubble_sort(T arr[], int len) { int i, j; T temp; for (i = 0; i for (j = 0; j if (arr[j] > arr[j 1]) { temp = arr[j]; arr[j] = arr[j 1]; arr[j 1] = temp; } } int main() { int arr[] = { 61, 17, 29, 22, 34, 60, 72, 21, 50, 1, 62 }; int len = (int) sizeof(arr) / sizeof(*arr); bubble_sort(arr, len); for (int i = 0; i cout < cout < float arrf[] = { 17.5, 19.1, 0.6, 1.9, 10.5, 12.4, 3.8, 19.7, 1.5, 25.4, 28.6, 4.4, 23.8, 5.4 }; len = (int) sizeof(arrf) / sizeof(*arrf); bubble_sort(arrf, len); for (int i = 0; i cout < return 0; }
二、快速排序
快速排序(Quicksort)是对冒泡排序的一种改进。

快速排序的思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。

以下博京备用网址可以直接运行:

#include using namespace std;
void Qsort(int arr[], int low, int high){ if (high <= low) return; int i = low; int j = high 1; int key = arr[low]; while (true) { while (arr[ i] { if (i == high){ break; } } while (arr[--j] > key) { if (j == low){ break; } } if (i >= j) break; int temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } int temp = arr[low]; arr[low] = arr[j]; arr[j] = temp; Qsort(arr, low, j - 1); Qsort(arr, j 1, high); }
int main() { int a[] = {57, 68, 59, 52, 72, 28, 96, 33, 24}; Qsort(a, 0, sizeof(a) / sizeof(a[0]) - 1); for(int i = 0; i { cout < } return 0; }
三、桶排序
桶排序(Bucket sort)或所谓的箱排序,是一个排序算法,工作的原理是将数组分到有限数量的桶子里。每个桶子再个别排序(有可能再使用别的排序算法或是以递归方式继续使用桶排序进行排序)。桶排序是鸽巢排序的一种归纳结果。当要被排序的数组内的数值是均匀分配的时候,桶排序使用线性时间(Θ(n))。但桶排序并不是 比较排序,他不受到 O(n log n) 下限的影响。

以下 博京备用网址可以直接运行:

#include usingnamespace std; int a[]={1,255,8,6,25,47,14,35,58,75,96,158,657}; const int len=sizeof(a)/sizeof(int); int b[10][len 1]={0};//将b全部置0 void bucketSort(int a[]);//桶排序函数 void distribute Elments(int a[],int b[10][len 1],int digits); void collectElments(int a[],int b[10][len 1]); int numOfDigits(int a[]); void zeroBucket(int b[10][len 1]);//将b数组中的全部元素置0 int main() { cout<<"原始数组:"; for(int i=0;i cout< cout< bucketSort(a); cout<<"排序后数组:"; for(int i=0;i cout< cout< return 0; } void bucketSort(int a[]) { int digits=numOfDigits(a); for(int i=1;i<=digits;i ) { distributeElments(a,b,i); collectElments(a,b); if(i!=digits) zeroBucket(b); } } int numOfDigits(int a[]) { int largest=0; for(int i=0;i if(a[i]>largest) largest=a[i]; int digits=0;//digits为最大值的位数 while(largest) { digits ; largest/=10; } return digits; } void distributeElments(int a[],int b[10][len 1],int digits) { int divisor=10;//除数 for(int i=1;i divisor*=10; for(int j=0;j { int numOfDigist=(a[j]%divisor-a[j]%(divisor/10))/(divisor/10); //numOfDigits为相应的(divisor/10)位的值,如当divisor=10时,求的是个位数 int num= b[numOfDigist][0];//用b中第一列的元素来储存每行中元素的个数 b[numOfDigist][num]=a[j]; } } void collectElments(int a[],int b[10][len 1]) { int k=0; for(int i=0;i<10;i ) for(int j=1;j<=b[i][0];j ) a[k ]=b[i][j]; } void zeroBucket(int b[][len 1]) { for(int i=0;i<10;i ) for(int j=0;j b[i][j]=0; }
四、合(归)并排序
归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。

#include using namespace std; void merge(int *data, int start, int mid, int end, int *result) { int i, j, k; i = start; j = mid 1; //避免重复比较data[mid] k = 0; while (i <= mid
本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

北京2022年10月19日 /美通社/ -- 10月18日,北京市经济和信息化局发布2022年度第一批北京市市级企业技术中心创建名单的通知,诺诚健华正式获得"北京市企业技术中心"认定。 北京市企业技...

关键字: BSP ARMA COM 博京备用网址

实际上函数指针本质也是一个指针,只不过这个指针指向的不是内存中的一段数据而是内存中的一段博京备用网址

关键字: 指针 数据 博京备用网址

苏州2022年10月17日 /美通社/ -- 开拓药业(股票博京备用网址:9939.HK),一家专注于潜在同类首创和同类最佳创新药物研发及产业化的生物制药公司,宣布其自主研发、潜在同类首创的福瑞他恩(KX-826)治疗痤疮的中国...

关键字: ST FDA 博京备用网址 ADI

在智能汽车时代,保障智能汽车数据安全已成为一项新的重要课题。

关键字: 丰田 博京备用网址 信息安全

南京2022年9月16日 /美通社/ -- 说到"世界清洁地球日",恐怕很多人都一头雾水。作为全球最重要的环境保护活动之一,该节日"致力于通过影响人类行为模式的改变以应对世界上的垃圾问题&q...

关键字: 电热水器 BSP 温度 博京备用网址

芝加哥2022年9月17日 /美通社/ -- 采用尖端微应答器技术彻底改变实物产品与材料跟踪的公司P-Chip Corporation,今日推出最新突破性p-Chip Code™安全跟踪标签。p-Chip博京备用网址跟踪器将基于...

关键字: CHIP 博京备用网址 应答器 矩阵

东京2022年9月6日 /美通社/ -- 电通集团(Dentsu Group Inc.,东京证券交易所股票博京备用网址:4324;国际证券识别博京备用网址:JP3551520004);(总裁兼首席执行官:Hiroshi Igarashi...

关键字: OS 博京备用网址 BSP GROUP

(全球TMT2022年8月25日讯)8月22-24日,2022中国国际智能产业博览会在重庆开幕。蓝卓受邀参加本次盛会,展示新一代工业操作系统supOS4.0的新能力。 本次智博会,蓝卓重点展示supOS4...

关键字: POS 操作系统 APP 博京备用网址

最新发布的2022年《中国新富人群财富健康指数》表明: 金融素养与投资风险意识呈正相关,投资者教育势在必行 新富家庭财务需求多样,共同协商可助家庭克服理财盲点 新富人群期待投顾服务为财富管理保驾护航...

关键字: BSP ADVANCED INA 博京备用网址

浙江湖州2022年8月24日 /美通社/ -- 近日,森赫电梯与建业集团达成战略合作,成为其电梯设备设计、供应及安装维保服务集采供应商。森赫电梯与建业集团成功携手,未来,双方将继续展开多元化的深入合作。...

关键字: 电梯 BSP 博京备用网址 数字化

亚星娱乐登录彩票

更多

亚星娱乐登录网页版

亚星娱乐登录网页版

关闭