欧美日韩不卡一区二区三区,www.蜜臀.com,高清国产一区二区三区四区五区,欧美日韩三级视频,欧美性综合,精品国产91久久久久久,99a精品视频在线观看

C語(yǔ)言

c語(yǔ)言中冒泡排序、插入排序、選擇排序算法比較

時(shí)間:2025-05-17 13:09:01 C語(yǔ)言 我要投稿
  • 相關(guān)推薦

c語(yǔ)言中冒泡排序、插入排序、選擇排序算法比較

  掌握好常用的排序算法,在實(shí)際的項(xiàng)目開(kāi)發(fā)中可以節(jié)省很多的時(shí)間。每一種排序算法在執(zhí)行的效率上是存在差別的,這些微小的時(shí)間差,也許在平常的聯(lián)系當(dāng)中感覺(jué)不到,但是涉及到數(shù)據(jù)量比較大或者是在資源比較緊張的系統(tǒng)中就顯得尤其的重要,比如嵌入式系統(tǒng)。下面簡(jiǎn)要介紹三種常用的排序算法以及他們的執(zhí)行效率的比較。以下僅供參考!

  冒泡排序

  思路:將相鄰的兩個(gè)數(shù)比較,將較小的數(shù)調(diào)到前頭;有n個(gè)數(shù)就要進(jìn)行n-1趟比較,第一次比較中要進(jìn)行n-1次兩兩比較,在第j趟比較中,要進(jìn)行n-j次兩兩比較。

  實(shí)現(xiàn)代碼:

  void BublleSort (int arr [], int count)

  {

  int i, j, temp;

  for(j=0; j<count-1; j ) /* 冒泡法要排序n-1次*/

  for(i=0; i<count-j-1; i )/* 值比較大的元素沉下去后,只把剩下的元素中的最大值再沉下去就可以啦 */

  {

  if(arr[i]>arr[i 1])/* 把值比較大的元素沉到底 */

  {

  temp=arr[i 1];

  arr[i 1]=arr[i];

  arr[i]=temp;

  }

  }

  }

  插入排序

  思路:在得到要排序的數(shù)組以后,講數(shù)組分為兩個(gè)部分,數(shù)組的第一個(gè)元素為一個(gè)部分,剩下的元素為一部分,然后從數(shù)組的第二個(gè)元素開(kāi)始,和該元素以前的所有元素比較,如果之前的元素沒(méi)有比該元素大的,那么該元素的位置不變,如果有元素的值比該元素大,那么記錄相愛(ài)他所在的位置;例如I,該元素的位置為k,則將從i到k位置上的所有元素往后移動(dòng)一位,然后將k位置上的值移動(dòng)到i位置上。這樣就找到了K所在的位置。每一個(gè)元素都這樣進(jìn)行,最終就會(huì)得到排好順序的數(shù)組。

  實(shí)現(xiàn)代碼:

  void InsertSort ( int arr[],int count)

  {

  int i,j,temp;

  for(i=1; i<count; i )//數(shù)組分兩個(gè)部分,從第二個(gè)數(shù)組元素開(kāi)始

  {

  temp = arr[i];//操作當(dāng)前元素,先保存在其它變量中

  for(j=i-1; j>-1&&arr[j]>temp;j--)//從當(dāng)前元素的上一個(gè)元素開(kāi)始查找合適的位置,一直查找到首元素

  {

  arr[i] = arr[j];

  arr[j] = temp;

  }

  }

  }

  選擇排序

  思路:首先以一個(gè)元素為基準(zhǔn),從一個(gè)方向開(kāi)始掃描,比如從左到右掃描,以A[0]為基準(zhǔn),接下來(lái)從A[0]….A[9]中找出最小的元素,將其與A[0]交換。然后將其基準(zhǔn)位置右移一位,重復(fù)上面的動(dòng)作,比如,以A[1]為基準(zhǔn),找出A[1]~A[9]中最小的,將其與A[1]交換。一直進(jìn)行到將基準(zhǔn)位置移到數(shù)組最后一個(gè)元素時(shí)排序結(jié)束。

  實(shí)現(xiàn)代碼

  void SelectSort(int arr[], int count)

  {

  int i,j,min,temp;

  for(i=0; i<count; i )

  {

  min = arr[i];//以此元素為基準(zhǔn)

  for(j=i 1; j<count; j )//從j往前的數(shù)據(jù)都是排好的,所以從j開(kāi)始往下找剩下的元素中最小的

  {

  if(min>arr[j])//把剩下元素中最小的那個(gè)放到arr[j]中

  {

  temp = arr[j];

  arr[j] = min;

  min = temp;

  }

  }

  }

  }

【c語(yǔ)言中冒泡排序、插入排序、選擇排序算法比較】相關(guān)文章:

c#冒泡排序算法08-15

C++插入排序算法實(shí)例06-02

C語(yǔ)言冒泡排序算法實(shí)例06-15

C語(yǔ)言插入排序算法及實(shí)例代碼07-02

C++冒泡排序算法實(shí)例詳解06-09

C++ 排序插入排序詳解08-03

C++選擇排序算法實(shí)例02-25

C語(yǔ)言中使用快速排序算法對(duì)元素排序的實(shí)例06-20

c語(yǔ)言的排序算法07-22