算法
Hello_and_world
让一让~~~你挡到我写代码了!
展开
-
交换排序算法
快速排序: 为啥叫快速排序,因为速度快,效率高 1.先找一个数作为基准。 作为基准的这个数,一趟排下来,左边的数必小于它,右边的数必大于它,也就是说,它找到了自己的位置。 2.将两个指针i,j分别指向表的起始(基准)和最后的位置。 3.比较j指针的数字是否小于基准,j–,直到j小于基准,交换位置 4.比较i指针的数字是否大于基准,i++,直到i大于基准,交换位置 5.若i==j原创 2017-03-06 21:55:59 · 519 阅读 · 0 评论 -
选择排序-直接选择
选择排序的基本思想是: 每次从待排序的数据元素集合中选取关键字最小(或最大)的数据元素放到数据元素集合的最前(或最后),数据元素集合不断缩小,当数据元素结合为空时排序结束。直接选择排序: 1,从待排序的数据元素集合中选取关键字最小的数据元素并将它与原始数据元素的第一个数据元素交换位置 2,然后从不包括第一个位置的数据元素集合中选取关键字最小的数据元素并将它与原始数据集合中的第二个数据元素原创 2017-03-24 11:21:56 · 468 阅读 · 0 评论 -
选择排序—堆排序
堆排序: 如果把待排序的数据元素集合构成一个完全二叉树的结构,则每次选出一个最大(最小)的数据元素,只需比较完全二叉树的数值为高度的次数,即log2n次,所以算法的复杂度就为O(log2n)。 堆的定义: 最小堆: 保持每个节点比它的左右孩子都小; 根节点是堆中值最小的数据元素; 根节点到每个叶子节点的路径上都是递增有序的最大堆: 保持每个节点比它的左右孩子都大; 根节点是堆中值最大原创 2017-03-25 13:54:33 · 369 阅读 · 0 评论 -
插入排序算法
直接插入排序: 指每次从无序表中取出第一个元素,把它插入到有序表的合适位置,使有序表仍然有序。 1.首先在当前有序区array[1..i-1]中查找array[i]的正确插入位置j(1≤j≤i-1); for(j = i-1; j >= 0 && array[j] > temp; j --) { arr[j+1] = arr[j];原创 2017-03-08 11:29:44 · 406 阅读 · 0 评论