欢迎Star,本文的所有示例源码都在Github:https://github.com/AndroidHensen/Arithmetic 本篇内容包含 排序的介绍 排序的C的实现 排序的Java的实现 排序的时间复杂度的计算 1、基本思想: 两个数比较大小,较大的数下沉,较小的数冒起来 2、实现步骤 ...
分类:
编程语言 时间:
2018-09-11 13:59:30
阅读次数:
144
def findsmallest(arr): smallest=arr[0] smallest_index=0 for i in range(1,len(arr)): #smallest_index+=1 if arr[i]<=smallest: smallest=arr[i] smallest_i ...
分类:
编程语言 时间:
2018-09-09 20:32:16
阅读次数:
208
#include #include int main() { int sum[10]={0}; int ch=0; int i=0; int j=0; int min_pos=0; int temp=0; printf("please input 10 num!\n"); for(i=0;i<10;... ...
分类:
编程语言 时间:
2018-09-08 15:17:41
阅读次数:
162
Java中的经典算法之选择排序(SelectionSort) a) 原理:每一趟从待排序的记录中选出最小的元素,顺序放在已排好序的序列最后,直到全部记录排序完毕。也就是:每一趟在n-i+1(i=1,2,…n-1)个记录中选取关键字最小的记录作为有序序列中第i个记录。基于此思想的算法主要有简单选择排序 ...
分类:
编程语言 时间:
2018-09-07 14:20:27
阅读次数:
153
预备知识 堆排序 堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最坏,最好,平均时间复杂度均为O(nlogn),它也是不稳定排序。首先简单了解下堆结构。 堆 堆是具有以下性质的完全二叉树:每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆;或者每个结点的值都小于或等于 ...
分类:
编程语言 时间:
2018-09-07 14:19:09
阅读次数:
167
一些说明 我将会写一系列关于算法的博客,因为我是程序员,并不是计算机科学家,也即我是搞工程的,并不是搞学术的,所以对于我来说,最重要的就是 1.有哪些算法 2.这些算法的原理 3.这些算法的实现 4.这些算法的效率 而其他的,相对而言,并没有那么重要,比如算法的证明,所以以后的博客都会按照上述的思维 ...
分类:
编程语言 时间:
2018-09-07 14:11:42
阅读次数:
156
1、快速排序快速排序是,设定一个基准,从两头出发把小于基准的序列统一在左边,大于基准的序列在右边。时间复杂度:平均O(nlogn)2、冒泡排序冒泡排序是,通过和相邻的元素比较,重复遍历。时间复杂度:O(n^2)3、直接选择排序直接选择排序是一种,把前面无序区最小的元素放到有序区的最后。时间复杂度:O(n^2)4、堆排序堆排序,是一种类似二叉树进行排序的方法,通过升序或者降序,保证父节点比子节点都大
分类:
编程语言 时间:
2018-09-06 20:06:26
阅读次数:
165
类模板:使用户可以为类声明一种模式,使类中某些数据成员,某些成员函数的参数,某些成员函数的返回值,能取任意类型。 类模板中,类名后必须跟 在主程序中定义对象时,类需说明对象是什么类型,同样用括号,在尖括号中指定所需类模板的类型。 类模板: template class 类名 { 类成员声明} 在类模 ...
分类:
编程语言 时间:
2018-09-06 12:36:28
阅读次数:
174
一、 选择排序 1. 概念理解: 在一个长度为3的数组中,在第一趟遍历3个数据,找出其中最小的数值与第一个元素交换; 第二趟遍历2个数据,找出其中最小的元素与第一个数交换(注意:这里的第一个数是指遍历的第一个数,实质上是数组的第二个数) 而第三趟则是和自己比较,位置还是原来的位置 2. 复杂度: 平 ...
分类:
编程语言 时间:
2018-09-04 20:20:45
阅读次数:
192
前 每逢周末就遇雨期,闲暇之余,捣鼓了下python,心心念想学习,今天就在电脑上装了个2.7,学习了下经典算法,冒泡与选择排序法 第一次写关于python的文章,说的不当之处,多多指正,我积极改正 在之前,曾写过使用java和C语言实现该两种排序法,详情见https://www.cnblogs.c ...
分类:
编程语言 时间:
2018-09-02 20:08:47
阅读次数:
205