- 浏览: 8689 次
- 性别:
- 来自: 北京
-
最近访客 更多访客>>
最新评论
-
hzizh:
将链表逆序可以在O(n)时间内得到交叉点
链表交叉问题 -
hzizh:
感觉时间复杂度是在O(n)
链表交叉问题 -
huangshiwei19861013:
偶感觉需要11次,每组比赛只能剔除3只狗;若是剔除4只,那么会 ...
37只狗只中选出跑得最快的3只 -
hzizh:
accept发生在三次握手之后。
第一次握手:客户端发送sy ...
tcp三次握手的过程,accept发生在三次握手哪个阶段? -
zhanghh321:
剔除A1,调(A2,B1,A3,B2,C1,G1)组成一组 h ...
37只狗只中选出跑得最快的3只
文章列表
c语言快速排序的实现
- 博客分类:
- 算法 排序
//
// main.c
// cTest
//
// Created by HuangZizhu on 13-10-8.
// Copyright (c) 2013年 HuangZizhu. All rights reserved.
//
#include <stdio.h>
#define N (10)
void quickSor(int *nums, int indexStart, int indexEnd);
int partition(int *nums, int indexStart, int indexEnd);
void ...
在一个页面之上生成并插入新页面的代码
- (UIViewController *)presentingController
{
if (!presentingController) {
presentingController = [[ASIAutorotatingViewController alloc] initWithNibName:nil bundle:nil];
// Attach to the window, but don't interfere.
UIWindow *window = [[[UIApplication sharedAppl ...
两个单向链表A、B,在中间某个节点交叉,呈“Y”字型(这里暂不考虑的存在环的情况),且链首在“Y”字形的上面分叉部分,现在知道A、B的头指针,且知道链表中各个结点存储的数值都一样,要求设计算法得到交叉点的位置,尽量减少额外空间和尽量降低时间复杂度
根据算法导论第二版中文版第六章堆排序内容所写的代码(p73),采用c语言,编译器为vc2008
程序的说明:
/*****************1. 定义数组的长度 ArrayLength = 102. 堆排序的思路: 建堆,使一个二叉树中的数据符合堆的定义,即是根的数值大于左右子结点的值,该功能由buildMaxHeap()函数完成 当堆的根结点的值发生变化时能够重新建立一个堆,该功能由maxHeapify()函数完成 有了上述两个函数后,首先建堆,根结点便是最大值,将之交换到最后,之后排除掉最后一个结点, 不断对剩余结点的maxHeapify,便可以在根结点得到第二大 ...
有37只狗,各只狗的速度都不同,现在有一个跑道,可以同时容纳6只狗竞跑,每次比赛能比较出快慢,但不能得到确切的速度的值,也没有计时器计算狗赛跑的时间。
现在要求用最少的比赛次数获得这37只狗中速度最快的3只,问需要至少比赛多少次。
#include<stdio.h>
typedef struct Node{
int id;
int value;
struct Node* next;
}Node;
Node* creatSingleList(int singleListLength);
Node* getSingleListTail(Node* singleListHead);
void printSingleList(Node* singleListHead);
void printNodeIDandValue(Node* singleListPointer);
...
个人写的快速排序
#include <stdio.h>
void getValues(int* values, int length);
void showValues(int* values,int length);
void quickSort(int* values, int start, int end);
int partition(int* valuse, int start, int end);
void exchange(int* a, int* b);
int main(int argc, char** argv){
int va ...