数组排序
文章平均质量分 66
军光
这个作者很懒,什么都没留下…
展开
-
算法学习 数组排序
来自庞果网:给定一个包含1-n的数列,我们通过交换任意两个元素给数列重新排序。求最少需要多少次交换,能把数组排成按1-n递增的顺序,其中,数组长度不超过100。 例如: 原数组是3,2,1, 我们只需要交换1和3就行了,交换次数为1,所以输出1。 原数组是2,3,1,我们需要交换2和1,变成1,3,2,再交换3和2,变为1,2,3,总共需要的交换次数为2,所以输出2。原创 2013-10-25 16:30:21 · 523 阅读 · 0 评论 -
堆排序
void Swap(int &a,int &b) { int tmp; tmp=a; a=b; b=tmp; } void Max_Heap(int a[],int i,int len) { int left,right,large; left=2*i+1; right=2*i+2; if(a==NULL||len<1) return; if(a[i]<a原创 2013-11-20 21:42:48 · 613 阅读 · 0 评论 -
实现数组获取前K个最小数
采用快速排序算法变形实现数组前K个最小数算法的实现。#include #include //#define swap(a,b) {a=a^b;b=a^b;a=a^b;} void swap(int *a,int *b) { //*a=*a^*b; //*b=*a^*b; //*a=*a^*b; int tmp; tmp=*a; *a=*b; *b=tmp; }原创 2014-03-24 21:17:30 · 474 阅读 · 0 评论 -
旋转数组最小值
//查找旋转数组中最小值,时间复杂度为O(logn) #include //旋转数组没有相等的数 [6,7,] int Find_min(int array[],int length) { int ptrnode1,ptrnode2,midnode; ptrnode1=0; ptrnode2=length-1; midnode=ptrnode1; while(原创 2014-05-07 12:31:56 · 388 阅读 · 0 评论