导航:首页 > 源码编译 > 凸包算法蛮力法

凸包算法蛮力法

发布时间:2022-09-12 08:30:21

‘壹’ 蛮力法是什么样的算法

《算法设计与分析基础》学习 --- 蛮力法 要重温算法思想,并以《算法设计与分析基础》这本书作为教材。该书每一章介绍一种算法设计思想。今天从最简单的开始写起,打好基础。以后再逐步深入,学习更深入的算法。 蛮力法就是一种解决问题的最简单最直观的最容易理解方法,虽然它简单,而且在实际应用中因为效率的原因可能不能派上用场,但是还是不能忽略它。正如书中作者所说,在解决小规模问题的时候也不失为一个方法,而且也是更复杂算法的基础。 一、选择排序
以最简单的思路解决排序问题,对于N个元素的数组,通过N次扫描数组,每次选择出最小的元素放置到正确的位置,N趟扫描后即完成排序。 show sourceview source print? 01/* 02 蛮力法-选择排序 03 将输入数组排成非递减数组 04 05 array:待排数组 06 n:数组大小,即[0,n-1] 07*/08void SelectionSort(int array[],unsigned int n) 09{ 10 int min; 11 for(int i=0;i<n-1;i++) 12 { 13 min=i; 14 for(int j=i+1;j<n;j++) 15 { 16 if(array[j]<array[min]) 17 min = j; 18 } 19 if(i!=min) 20 { 21 int temp = array[i]; 22 array[i] = array[min]; 23 array[min] = temp; 24 } 25 } 26}//SelectionSort
这是一个最差的排序方法,对于任何输入都是 O(n*n)的时间复杂度。但是它的最大优点就是交换次数最少。 二、冒泡排序
又是一个经典的蛮力排序算法。这里我仅仅对原始的冒泡做了点点改进,如果算法已经排好序的话该算法扫描一遍便完成排序。
show sourceview source print? 01/* 02 蛮力法-冒泡排序(稍微改进版) 03 将输入数组排成非递减数组 04 05 array:待排数组 06 n:数组大小,即[0,n-1] 07*/08void BubbleSort(int array[],unsigned int n) 09{ 10 int i=n-1; 11 int last; 12 while(i>0) 13 { 14 last = 0; 15 for(int j=0;j<i;j++) 16 { 17 if(array[j]>array[j+1]) 18 { 19 int temp = array[j]; 20 array[j] = array[j+1]; 21 array[j+1] = temp; 22 23 last = j; //记录最近一次交换值的位置 24 } 25 } 26 i = last; 27 } 28}//BubbleSort
但是在最差的情况下,它还是O(n*n)的时间复杂度。 三、顺序查找和字符串的蛮力匹配
顺序查找,再简单不过的查找算法了,算是对蛮力思想的一种应用。以及字符串的蛮力匹配也是这样的。

阅读全文

与凸包算法蛮力法相关的资料

热点内容
卡尔曼滤波算法书籍 浏览:765
安卓手机怎么用爱思助手传文件进苹果手机上 浏览:841
安卓怎么下载60秒生存 浏览:800
外向式文件夹 浏览:233
dospdf 浏览:428
怎么修改腾讯云服务器ip 浏览:385
pdftoeps 浏览:490
为什么鸿蒙那么像安卓 浏览:733
安卓手机怎么拍自媒体视频 浏览:183
单片机各个中断的初始化 浏览:721
python怎么集合元素 浏览:477
python逐条解读 浏览:829
基于单片机的湿度控制 浏览:496
ios如何使用安卓的帐号 浏览:880
程序员公园采访 浏览:809
程序员实战教程要多长时间 浏览:972
企业数据加密技巧 浏览:132
租云服务器开发 浏览:811
程序员告白妈妈不同意 浏览:333
攻城掠地怎么查看服务器 浏览:600