国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C > 正文

數據結構與算法 排序(冒泡,選擇,插入)

2020-01-26 14:00:28
字體:
來源:轉載
供稿:網友

數據結構與算法 排序(冒泡,選擇,插入)

1.冒泡排序

1.1算法

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

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

對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最后一對。在這一點,最后的元素應該會是最大的數。

針對所有的元素重復以上的步驟,除了最后一個。

持續每次對越來越少的元素重復上面的步驟,直到沒有任何一對數字需要比較。

1.2 實現

// // 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)是一種簡單直觀的排序算法。它的工作原理是每一次從待排序的數據元素中選出最小(或最大)的一個元素,存放在序列的起始位置,直到全部待排序的數據元素排完

2.2實現

// // 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)的基本思想是:每步將一個待排序的紀錄,按其關鍵碼值的大小插入前面已經排序的文件中適當位置上,直到全部插入完為止。

3.2 實現

// // 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; } 

以上就是對C語言數據結構與算法中排序的講解,大家如有疑問可以留言或者到本站社區交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 普宁市| 宣威市| 无锡市| 胶南市| 博客| 察隅县| 满洲里市| 赞皇县| 绥宁县| 仪陇县| 嘉黎县| 北川| 新闻| 乐山市| 金堂县| 威海市| 侯马市| 日土县| 肇庆市| 昌平区| 徐闻县| 水城县| 武川县| 延吉市| 武山县| 江都市| 鄂托克前旗| 安西县| 曲周县| 象州县| 阿瓦提县| 栾城县| 宜兰县| SHOW| 蓝田县| 渑池县| 乐都县| 偃师市| 临桂县| 石阡县| 上高县|