![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
benjamin1083
这个作者很懒,什么都没留下…
展开
-
算法实现之交换排序——冒泡与快排
冒泡排序基本思想:将需要排序的全部元素看成一列,自上而下对相邻两个元素进行比较和调整,让较大的元素往下沉,较小的元素往上冒。也就是如果相邻的两个元素比较后发现与要求的排序顺序相反,则交换他们的位置。元素往上冒的过程类似于水中的气泡,所以叫冒泡排序。算法实现: void bubblesort(int a[], int n) { for (int i = n-1; i > 0;原创 2016-05-11 21:53:54 · 448 阅读 · 0 评论 -
算法实现之直接插入排序与shell排序
1、直接插入排序顾名思义,即直接以插入的方式排序,就是把原始数据分成两类:有序部分和无序部分,然后依次将无序部分的所有数据插入到有序部分。由于遇到相等的数据,会把新插入的数据放在其后,所以,直接插入排序是稳定的。void insertsort(int *a, int n){ for (int i = 1; i < n; i++) { if (a[i] < a[i - 1]原创 2016-05-08 23:51:23 · 464 阅读 · 0 评论 -
算法实现之简单选择排序、二元选择排序和堆排序
简单选择排序基本思想:在要排序的一组数中,选出最小(或者最大)的一个数与第1个位置的数交换;然后在剩下的数当中再找最小(或者最大)的与第2个位置的数交换,依次类推,直到第n-1个元素(倒数第二个数)和第n个元素(最后一个数)比较为止。 void selectsort(int *a, int n) { for (int i = 0; i < n; ++i) ...原创 2016-05-09 22:12:00 · 949 阅读 · 0 评论 -
不同复杂度求解最大连续和
问题描述: 给定一个整数序列A[0],A[1], … , A[N-1],每个元素可正可负,求该序列中最大的连续和。## **方法1 暴力求解法**这种方法最直接,暴力枚举每一个每一个连续片段的起点和终点,然后求相应的和。其复杂度即为O(n3)O(n^3)。 算法描述为:int maxx = A[0];for(int i=0; i<N; i++) for(int j=i; j原创 2016-09-29 13:44:00 · 343 阅读 · 0 评论