最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

數(shù)據(jù)結(jié)構(gòu)與算法 排序(冒泡,選擇,插入)

 更新時(shí)間:2017年07月23日 10:34:12   投稿:lqh  
這篇文章主要介紹了數(shù)據(jù)結(jié)構(gòu)與算法 排序(冒泡,選擇,插入)的相關(guān)資料,這里對(duì)冒泡,選擇和插入都做有實(shí)例,需要的朋友可以參考下

數(shù)據(jù)結(jié)構(gòu)與算法 排序(冒泡,選擇,插入)

1.冒泡排序

1.1算法

冒泡排序(buddle-sort)算法的運(yùn)作如下:(從后往前)

比較相鄰的元素。如果第一個(gè)比第二個(gè)大,就交換他們兩個(gè)。

對(duì)每一對(duì)相鄰元素作同樣的工作,從開(kāi)始第一對(duì)到結(jié)尾的最后一對(duì)。在這一點(diǎn),最后的元素應(yīng)該會(huì)是最大的數(shù)。

針對(duì)所有的元素重復(fù)以上的步驟,除了最后一個(gè)。

持續(xù)每次對(duì)越來(lái)越少的元素重復(fù)上面的步驟,直到?jīng)]有任何一對(duì)數(shù)字需要比較。

1.2 實(shí)現(xiàn)

// 
// main.c 
// BubbleSort 
// 
// Created by Wuyixin on 2017/6/2. 
// Copyright © 2017年 Coding365. All rights reserved. 
// 
 
#include <stdio.h> 
 
void bubbleSort(int a[],int n){ 
  int i,j; 
  for (i = 0; i < n - 1; i++) { 
    for (j = 0; j < n - i; j++) { 
      if (a[j] > a[j + 1]){ 
        int temp = a[j]; 
        a[j] = a[j + 1]; 
        a[j + 1] = temp; 
      } 
    } 
  } 
} 
 
int main(int argc, const char * argv[]) { 
   
   
  int a[] = {9,3,1,4,7,6,5,8,2}; 
  bubbleSort(a, 9); 
  int i = 0; 
  while (i < 9) 
    printf("%d ",a[i++]); 
   
  return 0; 
} 

2.選擇排序

2.1 算法

選擇排序(selection-sort)是一種簡(jiǎn)單直觀的排序算法。它的工作原理是每一次從待排序的數(shù)據(jù)元素中選出最小(或最大)的一個(gè)元素,存放在序列的起始位置,直到全部待排序的數(shù)據(jù)元素排完

2.2實(shí)現(xiàn)

// 
// main.c 
// SelectionSort 
// 
// Created by Wuyixin on 2017/6/2. 
// Copyright © 2017年 Coding365. All rights reserved. 
// 
 
#include <stdio.h> 
 
void selectionSort(int a[],int n){ 
  int i,j,min,temp; 
   
  for (i = 0; i < n; i++) { 
    min = i; 
    for (j = i + 1; j < n; j++) { 
      if (a[j] < a[min]) 
        min = j; 
    } 
    if (i != min){ 
      temp = a[i]; 
      a[i] = a[min]; 
      a[min] = temp; 
    } 
  } 
} 
 
int main(int argc, const char * argv[]) { 
  int a[] = {9,3,1,4,7,6,5,8,2}; 
  selectionSort(a, 9); 
  int i = 0; 
  while (i < 9) 
    printf("%d ",a[i++]); 
  return 0; 
} 



3.插入排序

3.1 算法

插入排序(insertion-sort)的基本思想是:每步將一個(gè)待排序的紀(jì)錄,按其關(guān)鍵碼值的大小插入前面已經(jīng)排序的文件中適當(dāng)位置上,直到全部插入完為止。

3.2 實(shí)現(xiàn)

// 
// main.c 
// InsertionSort 
// 
// Created by Wuyixin on 2017/6/2. 
// Copyright © 2017年 Coding365. All rights reserved. 
// 
 
#include <stdio.h> 
 
void insertionSort(int a[],int n){ 
  int i,j,temp; 
  for (i = 1; i < n ; i++) { 
    temp = a[i]; 
    for (j = i; j > 0 && temp < a[j - 1]; j--) { 
      a[j] = a[j - 1]; 
    } 
    a[j] = temp; 
  } 
} 
 
int main(int argc, const char * argv[]) { 
  int a[] = {9,3,1,4,7,6,5,8,2}; 
  insertionSort(a, 9); 
  int i = 0; 
  while (i < 9) 
    printf("%d ",a[i++]); 
  return 0; 
} 

以上就是對(duì)C語(yǔ)言數(shù)據(jù)結(jié)構(gòu)與算法中排序的講解,大家如有疑問(wèn)可以留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!

相關(guān)文章

  • Vscode Remote Development遠(yuǎn)程開(kāi)發(fā)調(diào)試的實(shí)現(xiàn)思路

    Vscode Remote Development遠(yuǎn)程開(kāi)發(fā)調(diào)試的實(shí)現(xiàn)思路

    這篇文章主要介紹了Vscode Remote Development遠(yuǎn)程開(kāi)發(fā)調(diào)試的相關(guān)資料,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-04-04
  • C++ 結(jié)構(gòu)體初始化與賦值詳解

    C++ 結(jié)構(gòu)體初始化與賦值詳解

    本文主要介紹了C++ 結(jié)構(gòu)體初始化與賦值詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • Qt學(xué)習(xí)筆記之QPalette調(diào)色板類(lèi)

    Qt學(xué)習(xí)筆記之QPalette調(diào)色板類(lèi)

    這篇文章主要為大家詳細(xì)介紹了Qt學(xué)習(xí)筆記之QPalette調(diào)色板類(lèi),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-07-07
  • vs2019+win10配置boost庫(kù)的詳細(xì)教程

    vs2019+win10配置boost庫(kù)的詳細(xì)教程

    這篇文章主要介紹了vs2019+win10配置boost庫(kù),本文通過(guò)圖文實(shí)例相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-06-06
  • C語(yǔ)言goto的應(yīng)用舉例以及詳解

    C語(yǔ)言goto的應(yīng)用舉例以及詳解

    goto的用法就是改變程序執(zhí)行的順序,從某個(gè)地方跳轉(zhuǎn)到你標(biāo)志的地方,下面這篇文章主要給大家介紹了關(guān)于C語(yǔ)言goto的應(yīng)用舉例及詳解的相關(guān)資料,需要的朋友可以參考下
    2022-11-11
  • C++ opencv實(shí)現(xiàn)車(chē)道線識(shí)別

    C++ opencv實(shí)現(xiàn)車(chē)道線識(shí)別

    這篇文章主要為大家詳細(xì)介紹了C++ opencv實(shí)現(xiàn)車(chē)道線識(shí)別,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-02-02
  • C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)易通訊錄實(shí)例

    C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)易通訊錄實(shí)例

    大家好,本篇文章主要講的是C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)易通訊錄實(shí)例,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下
    2022-02-02
  • 二叉樹(shù)遍歷 非遞歸 C++實(shí)現(xiàn)代碼

    二叉樹(shù)遍歷 非遞歸 C++實(shí)現(xiàn)代碼

    對(duì)于二叉樹(shù),有前序、中序以及后序三種遍歷方法。因?yàn)闃?shù)的定義本身就是遞歸定義,因此采用遞歸的方法去實(shí)現(xiàn)樹(shù)的三種遍歷不僅容易理解而且代碼很簡(jiǎn)潔。而對(duì)于樹(shù)的遍歷若采用非遞歸的方法,就要采用棧去模擬實(shí)現(xiàn)
    2013-09-09
  • C語(yǔ)言移除元素的三種思路講解

    C語(yǔ)言移除元素的三種思路講解

    這篇文章主要介紹了C語(yǔ)言移除元素的三種思路,總的來(lái)說(shuō)這并不是一道難題,那為什么要拿出這道題介紹?拿出這道題真正想要傳達(dá)的是解題的思路,以及不斷優(yōu)化探尋最優(yōu)解的過(guò)程。希望通過(guò)這道題能給你帶來(lái)一種解題優(yōu)化的思路
    2022-10-10
  • c++實(shí)現(xiàn)高精度加法

    c++實(shí)現(xiàn)高精度加法

    高精度運(yùn)算是指參與運(yùn)算的數(shù)(加數(shù),減數(shù),因子……)范圍大大超出了標(biāo)準(zhǔn)數(shù)據(jù)類(lèi)型(整型,實(shí)型)能表示的范圍的運(yùn)算。例如,求兩個(gè)200位的數(shù)的和。這時(shí),就要用到高精度算法了。
    2017-05-05

最新評(píng)論

沙河市| SHOW| 天门市| 修文县| 宁武县| 晋州市| 泉州市| 南阳市| 洪洞县| 牡丹江市| 井冈山市| 荣成市| 涿鹿县| 崇仁县| 旬邑县| 阳城县| 佛学| 曲周县| 克拉玛依市| 金门县| 奈曼旗| 元氏县| 永寿县| 华容县| 象州县| 泸州市| 湄潭县| 宝兴县| 仪征市| 砀山县| 平阳县| 万源市| 宁乡县| 称多县| 剑阁县| 平乡县| 六安市| 新化县| 华蓥市| 麻江县| 通河县|