面试常考排序算法

  

//直接插入排序
void InsertSort(int A[], int n)
{
	int i,j;
	int temp;
	for (i=0;i<n-1;i++)
	{
		temp=A[i+1];
		j=i;
		while (j>-1&&temp<A[j])
		{
			A[j+1]=A[j];
			j--;
		}
		A[j+1]=temp;
	}
}
//冒泡排序
void BubbleSort(int A[],int n)
{
	int i, j, flag=1;
	int temp;
	for (i=1;i<n&&flag;i++)
	{
		flag=0;
		for (j=0;j<n-i;j++)
		{
			if(A[j+1]<A[j])
			{
				flag=1;
				temp=A[j+1];
				A[j+1]=A[j];
				A[j]=temp;
			}
		}
	}
}

  

时间: 2024-12-22 03:02:37

面试常考排序算法的相关文章

PHP面试常考内容之Memcache和Redis(1)

你好,是我琉忆.继上周(2019.2-11至2-15)发布的"PHP面试常考内容之面向对象"专题后,发布的第二个专题,感谢你的阅读.本周(2019.2-18至2-22)的文章内容点为以下几点,更新时间为每周一三五,可以关注本栏持续关注,感谢你的支持. 一.什么是Memcache?二.Memcache有什么特征?三.Memcache的内存管理机制是什么样的?四.Memcache和Memcached有什么区别?五.如何操作Memcache?六.如何使用Memcache做Session共享?

Java面试常考到的东东

1.super与this的区别? super是我们在子类中想使用被子类隐藏的父类的成员变量或方法时,可以使用的关键字. this出现在类的实例方法中,代表使用该方法的当前对象.也可以出现在类的构造方法中,代表使用该构造方法所创建的对象. this()代表当前类对象,super()代表父类对象. 表示在子类访问父类的成员和行为,必须受到类继承规则的约束. 在子类的构造函数中,如果第一行没有写super(),编译器会自动插入.但是如果父类没有不带参数的构造函数,或这个构造函数被私有化了,此时必须加入

计算机网络面试常考总结(二)

目录 简述DNS域名系统及其工作原理. 简述HTTP协议及其工作原理. HTTP报文的格式? HTTP请求报文中的方法有哪些? http1.1和http2.0的区别? http的返回码以及代表的意思? 简述https.https与http的区别? IP数据报格式? TCP数据报格式? UDP数据报格式? 以太网MAC帧格式? 怎么判断两台主机是否连接好? 简述RIP及其工作原理. 简述OSPF及其工作原理. 简述BGP及其工作原理. 写在最前面:本文章所有内容是本人从网络上以及<计算机网络第七版

面试常考各类排序算法总结.(c#)

一. 面试以及考试过程中必会出现一道排序算法面试题,为了加深对排序算法的理解,在此我对各种排序算法做个总结归纳. 1.冒泡排序算法(BubbleSort) 1 public Class SortDemo 2 { 3 public void BubbleSort(int arr) 4 { 5 int temp=0; 6 //需要走arr.Length-1 趟 7 for(int i=0;i<arr.Length-1;i++) 8 { 9 //每一趟需要比较次数 10 for(int j=0,j<

面试常考数据结构与算法

数据结构部分: 1.数组和链表的区别.(很简单,但是很常考,记得要回答全面) C++语言中可以用数组处理一组数据类型相同的数据,但不允许动态定义数组的大小,即在使用数组之前必须确定数组的大小.而在实际应用中,用户使用数组之前无法确定数组的大小,只能够将数组定义成足够大小,这样数组的空间可能不被使用,从而造成内存空间的浪费.链表是一种常见的数据组织形式,他采用动态分配内存的形式实现.需要时可以用new分配内存空间,不需要时用delete将已分配的空间释放,不会造成内存空间的浪费. 从逻辑结构上来看

面试中的排序算法总结(转)

转自http://www.codeceo.com/article/10-sort-algorithm-interview.html 前言 查找和排序算法是算法的入门知识,其经典思想可以用于很多算法当中.因为其实现代码较短,应用较常见.所以在面试中经常会问到排序算法及其相关的问题.但万变不离其宗,只要熟悉了思想,灵活运用也不是难事.一般在面试中最常考的是快速排序和归并排序,并且经常有面试官要求现场写出这两种排序的代码.对这两种排序的代码一定要信手拈来才行.还有插入排序.冒泡排序.堆排序.基数排序.

面试中的排序算法总结

来源:http://www.cnblogs.com/wxisme/p/5243631.html 前言 查找和排序算法是算法的入门知识,其经典思想可以用于很多算法当中.因为其实现代码较短,应用较常见.所以在面试中经常会问到排序算法及其相关的问题.但万变不离其宗,只要熟悉了思想,灵活运用也不是难事.一般在面试中最常考的是快速排序和归并排序,并且经常有面试官要求现场写出这两种排序的代码.对这两种排序的代码一定要信手拈来才行.还有插入排序.冒泡排序.堆排序.基数排序.桶排序等.面试官对于这些排序可能会要

面试题目集锦 -- 排序算法

      面试过程中.免不了会问一些比較基础的问题,而这些基础的问题肯定要说到排序上去.       我们知道.排序算法包括插入,选择,冒泡.高速,归并,堆排序等等,大多时候,我们在面试的时候,最常问的排序算法是堆,高速和归并排序,其它的几种相对简单,问的较少.那么,我们仅仅须要在面试前把它们都弄懂然后自己在纸上写出来就能够了.在写这些算法的时候,我查了非常多的资料,也看了非常多文章.毕竟排序算法非常经典.所以,在这上面花的时间还挺多的.只是,我发现有些排序算法的实现偏复杂.并且不好理解,于是

面试——8大排序算法图文讲解

排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存. 常见的内部排序算法有:插入排序.希尔排序.选择排序.冒泡排序.归并排序.快速排序.堆排序.基数排序等. 本文将依次介绍上述八大排序算法. 算法一:插入排序 插入排序示意图 插入排序是一种最简单直观的排序算法,它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入. 算法步骤: 1)将第一待排序序列第一