<em id="0a85b"><option id="0a85b"></option></em>

<abbr id="0a85b"></abbr>

      <nobr id="0a85b"></nobr>
        <tr id="0a85b"></tr>
        9久久伊人精品综合,亚洲一区精品视频在线,成 人免费va视频,国产一区二区三区黄网,99国产精品永久免费视频,亚洲毛片多多影院,精品久久久无码人妻中文字幕,无码国产欧美一区二区三区不卡
        學習啦>創業指南>職場>筆試題>

        C筆試題算法

        時間: 護托1061 分享

          C語言能直接訪問硬件的物理地址,能進行位(bit)操作。兼有高級語言和低級語言的許多優點。下面就由學習啦小編為大家介紹一下C筆試題算法的文章,歡迎閱讀。

          C筆試題算法篇1

          冒泡法:

          這是最原始,也是眾所周知的最慢的算法了。他的名字的由來因為它的工作看來象是冒泡: #include

          void BubbleSort(int* pData,int Count)

          {

          int iTemp;

          for(int i=1;i

          {

          for(int j=Count-1;j>=i;j--)

          {

          if(pData[j]

          {

          iTemp = pData[j-1];

          pData[j-1] = pData[j];

          pData[j] = iTemp;

          }

          }

          }

          }

          void main()

          {

          int data[] = {10,9,8,7,6,5,4};

          BubbleSort(data,7);

          for (int i=0;i<7;i++)

          cout<

          }

          倒序

          第一輪:10,9,8,7->10,9,7,8->10,7,9,8->7,10,9,8(交換3次)

          第二輪:7,10,9,8->7,10,8,9->7,8,10,9(交換2次)

          第一輪:7,8,10,9->7,8,9,10(交換1次)

          循環次數:6次

          交換次數:6次

          其他:

          第一輪:8,10,7,9->8,10,7,9->8,7,10,9->7,8,10,9(交換2次)

          第二輪:7,8,10,9->7,8,10,9->7,8,10,9(交換0次)

          第一輪:7,8,10,9->7,8,9,10(交換1次)

          循環次數:6次

          交換次數:3次

          上面我們給出了程序段,現在我們分析它:這里,影響我們算法性能的主要部分是循環和交換,顯然,次數越多,性能就越差。從上面的程序我們可以看出循環的次數是固定的,為1+2+...+n-1。 寫成公式就是1/2*(n-1)*n。

          現在注意,我們給出O方法的定義:

          若存在一常量K和起點n0,使當n>=n0時,有f(n)<=K*g(n),則f(n) = O(g(n))。(呵呵,不要說沒學好數學呀,對于編程數學是非常重要的!!!)

          現在我們來看1/2*(n-1)*n,當K=1/2,n0=1,g(n)=n*n時,1/2*(n-1)*n<=1/2*n*n=K*g(n)。所以(n)=O(g(n))=O(n*n)。所以我們程序循環的復雜度為O(n*n)。

          再看交換。從程序后面所跟的表可以看到,兩種情況的循環相同,交換不同。其實交換本身同數據源的有序程度有極大的關系,當數據處于倒序的情況時,交換次數同循環一樣(每次循環判斷都會交換),復雜度為O(n*n)。當數據為正序,將不會有交換。復雜度為O(0)。亂序時處于中間狀態。正是由于這樣的原因,我們通常都是通過循環次數來對比算法。

          C筆試題算法篇2

          交換法:

          交換法的程序最清晰簡單,每次用當前的元素一一的同其后的元素比較并交換。

          #include

          void ExchangeSort(int* pData,int Count)

          {

          int iTemp;

          for(int i=0;i

          {

          for(int j=i+1;j

          {

          if(pData[j]

          {

          iTemp = pData[i];

          pData[i] = pData[j];

          pData[j] = iTemp;

          }

          }

          }

          }

          void main()

          {

          int data[] = {10,9,8,7,6,5,4};

          ExchangeSort(data,7);

          for (int i=0;i<7;i++)

          cout<

          }

          倒序

          第一輪:10,9,8,7->9,10,8,7->8,10,9,7->7,10,9,8(交換3次)

          第二輪:7,10,9,8->7,9,10,8->7,8,10,9(交換2次)

          第一輪:7,8,10,9->7,8,9,10(交換1次)

          循環次數:6次

          交換次數:6次

          其他:

          第一輪:8,10,7,9->8,10,7,9->7,10,8,9->7,10,8,9(交換1次)

          第二輪:7,10,8,9->7,8,10,9->7,8,10,9(交換1次)

          第一輪:7,8,10,9->7,8,9,10(交換1次)

          循環次數:6次

          交換次數:3次

          從運行的表格來看,交換幾乎和冒泡一樣糟。事實確實如此。循環次數和冒泡一樣也是1/2*(n-1)*n,所以算法的復雜度仍然是O(n*n)。由于我們無法給出所有的情況,所以只能直接告訴大家他們在交換上面也是一樣的糟糕(在某些情況下稍好,在某些情況下稍差)。

          C筆試題算法篇3

          選擇法:

          現在我們終于可以看到一點希望:選擇法,這種方法提高了一點性能(某些情況下)

          這種方法類似我們人為的排序習慣:從數據中選擇最小的同第一個值交換,在從省下的部分中選擇最小的與第二個交換,這樣往復下去。

          #include

          void SelectSort(int* pData,int Count)

          {

          int iTemp;

          int iPos;

          for(int i=0;i

          {

          iTemp = pData[i];

          iPos = i;

          for(int j=i+1;j

          {

          if(pData[j]

          {

          iTemp = pData[j];

          iPos = j;

          }

          }

          pData[iPos] = pData[i];

          pData[i] = iTemp;

          }

          }

          void main()

          {

          int data[] = {10,9,8,7,6,5,4};

          SelectSort(data,7);

          for (int i=0;i<7;i++)

          cout<

          }

          倒序(最糟情況)

          第一輪:10,9,8,7->(iTemp=9)10,9,8,7->(iTemp=8)10,9,8,7->(iTemp=7)7,9,8,10(交換1次) 第二輪:7,9,8,10->7,9,8,10(iTemp=8)->(iTemp=8)7,8,9,10(交換1次)

          第一輪:7,8,9,10->(iTemp=9)7,8,9,10(交換0次)

          循環次數:6次

          交換次數:2次

          其他:

          第一輪:8,10,7,9->(iTemp=8)8,10,7,9->(iTemp=7)8,10,7,9->(iTemp=7)7,10,8,9(交換1次) 第二輪:7,10,8,9->(iTemp=8)7,10,8,9->(iTemp=8)7,8,10,9(交換1次)

          第一輪:7,8,10,9->(iTemp=9)7,8,9,10(交換1次)

          循環次數:6次

          交換次數:3次

          遺憾的是算法需要的循環次數依然是1/2*(n-1)*n。所以算法復雜度為O(n*n)。

          我們來看他的交換。由于每次外層循環只產生一次交換(只有一個最小值)。所以f(n)<=n 所以我們有f(n)=O(n)。

          所以,在數據較亂的時候,可以減少一定的交換次數。

        3172788 主站蜘蛛池模板: 亚洲熟妇色xxxxx亚洲| 国产成人av乱码在线观看| 亚洲夜夜欢一区二区三区| 国产在线观看播放av| 久久热这里只有精品最新| 九九热视频在线观看视频| 亚洲第一福利网站在线| 久久婷婷综合色丁香五月| 国产精品高潮呻吟av久久无吗| 国产jizzjizz视频| 亚洲精品中文字幕一二三| 国产人伦精品一区二区三| 国产免费高清69式视频在线观看 | 日产国产一区二区不卡| 性少妇videosexfreexxxx片| 久久久亚洲av成人网站| 思思久99久女女精品| 亚洲日本韩国欧美云霸高清| 99久久激情国产精品| 精品亚洲综合一区二区三区| 日韩精品一卡二卡在线观看| 亚洲精品综合一区二区三区| 日本55丰满熟妇厨房伦| 黑色丝袜脚交视频麻豆| 亚洲av熟女天堂系列| 国产av永久无码天堂影院| 国产精品第一页中文字幕| 精品无码人妻| 内射少妇36p九色| 国产免费午夜福利在线观看| 69天堂人成无码免费视频| 国产极品粉嫩馒头一线天| 无码日韩av一区二区三区| 国内精品久久久久影院不卡| 亚洲一本之道高清乱码| 9久9久热精品视频在线观看| 亚洲av午夜福利大精品| 九九久久人妻精品一区色| 国产性色的免费视频网站| 护士张开腿被奷日出白浆| 东京热久久综合久久88|