zoukankan      html  css  js  c++  java
  • C语言面试题(三)

      这篇主要聚焦在排序算法,包括常见的选择排序,插入排序,冒泡排序,快速排序。会对这四种排序的时间复杂度和空间复杂度进行探究。

    a.选择排序

     1 int main(int argc,char **argv){
     2 int a[12]={43,34,654,3,45,6,54,8,65,10,76,12};
     3 int i,j,t,tmp;
     4 for(i=0;i<12-1;i++){
     5 t=i;
     6 for(j=i;j<12;j++){
     7 if (a[t]>a[j]) t=j;
     8 }
     9 if (t!=i){
    10 tmp=a[i];
    11 a[i]=a[t];
    12 a[t]=tmp;
    13 }
    14 }
    15 for(i=0;i<12;i++)printf("%d ",a[i]);
    16 return 0;
    17 }

    b.插入排序

     1 int main(int argc,char **argv){
     2 int a[12]={43,34,654,3,45,6,54,8,65,10,76,12};
     3 int i,j,t,tmp;
     4 for(i=1;i<12;i++){
     5 t=a[i];
     6 j=i-1;
     7 while(j>=0&&a[j]>t){
     8 a[j+1]=a[j];
     9 file:///E|/embed/Linux/book/c_note.txt[2015-05-30 23:43:42]j--;
    10 }
    11 a[j+1]=t;
    12 }
    13 }
    14 for(i=0;i<12;i++)printf("%d ",a[i]);
    15 return 0;
    16 }

    c.冒泡排序

     1 int main(int argc,char **argv)
     2 {
     3     int a[12]={43,34,654,3,45,6,54,8,65,10,76,12};
     4     int i,j,t;
     5     for(i=1;i<12;i++)
     6    {
     7         for(j=0;j<12-i;j++)
     8       {
     9             if (a[j]>a[j+1])
    10           {
    11                 t=a[j];
    12                 a[j]=a[j+1];
    13                 a[j+1]=t;
    14           }
    15       }
    16    }
    17     for(i=0;i<12;i++)printf("%d ",a[i]);
    18     return 0;
    19 }    

    d.快速排序

     1 void qsort(int s[], int l, int r)
     2 {
     3     int i, j, x;
     4     if (l < r)
     5     {
     6         i = l;
     7         j = r;
     8         x = s[i];
     9         while (i < j)
    10         {
    11             while(i < j && s[j] > x) j--; /* 从右向左找第一个小于x的数 */
    12             if(i < j) s[i++] = s[j];
    13             while(i < j && s[i] < x) i++; /* 从左向右找第一个大于x的数 */
    14             if(i < j) s[j--] = s[i];
    15         }
    16         s[i] = x;
    17         qsort(s, l, i-1); /* 递归调用 */
    18         qsort(s, i+1, r);
    19     }
    20 }
    wsksec@gmail.com Pressing on Toward the Goal
  • 相关阅读:
    selenium中webDriver模块的常用方法
    java web Project Explorer误删解决方法
    java web开发前后端中文配置
    常见Filed Types
    类的展现
    面向对象:类与运算符
    面向对象定义类,属性
    筛选元素
    try : finally语句
    捕获异常try:except
  • 原文地址:https://www.cnblogs.com/shuk-notes/p/4694920.html
Copyright © 2011-2022 走看看