美文网首页iOS传道面试
常见的面试算法

常见的面试算法

作者: 聆听者JYZ | 来源:发表于2017-02-21 17:37 被阅读63次

再去一些大公司面试时,总喜欢去先考一些基础的算法,不多说了,直接上代码几个比较基础的算法代码:

//冒泡排序(相邻交换,除了最后一个)

voidmaopaoSort(){

intnum[6];

printf("请输入6个数:");

for(inti =0; i<6; i++) {scanf("%d",&num[i]);}

for(inti =0; i <6; i++) {

for(intj = i; j <5; j++) {if(num[i] > num[j]) {inttemp = num[i];num[i] = num[j];num[j] = temp;

}}}

printf("排序后为:");

for(inti=0; i <6; i++) {printf(" %d",num[i]);}

}

冒泡排序

//选择排序(每一次找出最大或者最小的元素,比较除了当前的自己)

voidselectSort(){

intnum[6];printf("请输入6个数:");

for(inti =0; i<6; i++) {scanf("%d",&num[i]);}

for(inti =0; i <5; i++){for(intj =i+1; j <6; j++){if(num[i] < num[j]){

inttemp = num[i];num[i] = num[j];num[j] = temp;}}}

printf("排序后为:");

for(inti=0; i <6; i++) {printf(" %d",num[i]);}

}

选择排序

//判断是否是回文

voidhuiwen(){

intn =1111221111;intp = n;intk =0;

while(p!=0) {k=k*10+p%10;p=p/10;//出去已经处理的余数(也就是最后一个数)

}if(k==n) {printf("%d是回文",n);}else{printf("%d不是回文",n);}}

判断是否是回文

//反转链表(链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域)

//定义链表

structnode{intval;structnode*pNext;};

//生成链表

structnode*gen(){structnode*pHead =NULL;

for(inti =10; i >0; i--){structnode* p = (structnode*)malloc(sizeof(structnode));p ->val= i;p ->pNext= pHead;pHead = p;}returnpHead;}

//打印链表

voiddisplay(structnode*pHead){while( pHead !=NULL){printf("%d ", pHead->val);pHead = pHead->pNext;}printf("\n");}

#pragma下面是实现反转列表的几种方式

//1、递归实现

structnode* reverse(structnode*pHead){if(pHead ==NULL|| pHead ->pNext==NULL){returnpHead;}

structnode*p = pHead ->pNext;structnode*pNewHead =reverse(p);p ->pNext= pHead;

pHead ->pNext=NULL;returnpNewHead;}

intmain(intargc,constchar* argv[]) {structnode*pHead =gen();display(pHead);pHead =reverse(pHead);

display(pHead);return0;}

反转链表

最小二叉树思想

最小二叉树

相关文章

  • 面试常见问题 - 目录

    面试常见问题01 - C++相关(施工ing) 面试常见问题02 - 算法与数据结构(施工ing) 面试常见问题0...

  • 面试常见算法

    1、冒泡排序 2、选择排序 3、插入排序 4、递归 5、杨辉三角 6、约瑟夫环 7、归并排序 http://www...

  • 面试常见算法

    最长不含重复字符的子字符串: 请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度。 示例...

  • 排序算法第一篇-排序算法介绍

    排序算法第一篇-排序算法介绍 在面试中,现在无论大小公司都会有算法的。其中排序算法也是一种很常见的面试题。比如冒泡...

  • 程序员进阶之算法练习(三十)附基础教程

    前言 BAT常见的算法面试题解析:程序员算法基础——动态规划程序员算法基础——贪心算法工作闲暇也会有在线分享,算法...

  • 程序员进阶之算法练习(三十二)LeetCode专场

    前言 BAT常见的算法面试题解析:程序员算法基础——动态规划程序员算法基础——贪心算法工作闲暇也会有在线分享,算法...

  • 程序员进阶之算法练习(三十三)LeetCode专场

    前言 BAT常见的算法面试题解析:程序员算法基础——动态规划程序员算法基础——贪心算法工作闲暇也会有在线分享,算法...

  • 程序员进阶之算法练习(三十一)

    前言 BAT常见的算法面试题解析:程序员算法基础——动态规划程序员算法基础——贪心算法工作闲暇也会有在线分享,算法...

  • 面试常见算法题

    1.对象转换为数组 2.统计一个字符串出现最多的字母 3.找出下列正数组的最大差值 4.获取数组中最大或者最小值 ...

  • iOS面试常见算法

    iOS面试题系列之常见算法 1. 对以下一组数据进行降序排序(冒泡排序)。“24,17,85,13,9,54,76...

网友评论

    本文标题:常见的面试算法

    本文链接:https://www.haomeiwen.com/subject/dmpuwttx.html