亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁(yè) > 編程 > C > 正文

排序算法的實(shí)現(xiàn)示例分享

2020-02-24 14:31:44
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

現(xiàn)在寫排序算法的博客非常多,而排序又是我們?cè)诰幊踢^(guò)程中經(jīng)常遇到的操作,很大程度上影響了程序的運(yùn)行,現(xiàn)在我們就去看看排序算法的實(shí)現(xiàn)示例分享。

 

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

 

void BubbleSort1 (int n, int *array) /*little > big*/
{
 int i, j;
 for (i=0; i<n-1; i++)
 {
  for (j=n-1; j>i; j--)
  {
   if (array[j] < array[j-1])
   {
    int temp = array[j];
    array[j] = array[j-1];
    array[j-1] = temp;
   }
  }
 }
}

void BubbleSort2 (int n, int *array)
{
 int i, j, flag=1; /*flag=1表示需要繼續(xù)冒泡*/
 for (i=0; i<n-1 && flag; i++)
 {
  flag = 0;
  for (j=n-1; j>i; j--)
  {
   if (array[j] < array[j-1])
   {
    int temp = array[j];
    array[j] = array[j-1];
    array[j-1] = temp;
    flag = 1;
   }
  }
 }
}

void SelectSort (int n, int *array)
{
 int i, j, min;
 for (i=0; i<n-1; i++)
 {
  min = i;
  for (j=i+1; j<n; j++)
  {
   if (array[min] > array[j])
    min = j;
  }
  int temp = array[min];
  array[min] = array[i];
  array[i] = temp;
 }
}

void InsertSort (int n, int*array)
{
 int i, j;
 for (i=1; i<n; i++)
 {
  if (array[i] < array[i-1]) /*是否需要插入*/
  {
   int key = array[i]; //哨兵
   for (j = i-1;j>=0 && array[j] > key; j--)
   {
    array[j+1] = array[j];
   }
   /*循環(huán)結(jié)束時(shí)array[j]<=key,將key插入到j(luò)+1處*/
   array[j+1] = key;
  }
 }
}

/*分組插入排序*/
void ShellSort (int n, int *array)
{
 int i, j;
 int increment;
 for (increment=n/2; increment > 0; increment /= 2)
 {
  for (i=0; i<increment; i++)  /*下面對(duì)一組序列進(jìn)行插入排序*/
  {
   for (j=i+increment; j<n; j+=increment)
   {
    if (array[j] < array[j-increment])
    {
     int key = array[j];
     int k;
     for (k=j-increment; k>=0 && array[k]>key; k -= increment)
     {
      array[k+increment] = array[k];
     }
     array[k+increment] = key;
    }
   }
  }
 }
}

/*分治法*/
void QuickSort (int left, int right, int *array)
{
 if(left>=right)
  return ;
 int i=left, j=right;
 int key=array[i];
 while (i<j)
 {
  while (i<j && array[j]>=key)
   j--;
  array[i] = array[j];
  while (i<j && array[i]<=key)
   i++;
  array[j] = array[i];
 }
 array[i] = key;
 QuickSort(left, i-1, array);
 QuickSort(i+1, right, array);
}

/*array[start+1] ~ array[end]已經(jīng)滿足堆的定義,調(diào)整使得array[start] ~ array[end]滿足堆定義*/
void HeapAdjust (int start, int end, int array[])
{
 int i;
 int temp = array[start]; /*產(chǎn)生第一個(gè)空白*/
 for (i=2*start+1; i<=end; i=2*i+1)  /*每次循環(huán)時(shí)空白節(jié)點(diǎn)為array[(i-1)/2]*/
 {
  if (i<end && array[i] < array[i+1])  /*在左右孩子中尋找較大值*/
   i++;
  if (array[i] > temp)
   array[(i-1)/2] = array[i];
  else
   break;
 }
 array[(i-1)/2] = temp;  /*插入原來(lái)的temp到空白處*/
}
void HeapSort (int n, int array[])
{
 int i;
 for (i=(n-2)/2; i>=0; i--)  /*構(gòu)造大頂堆*/
  HeapAdjust(i, n-1, array);

 for (i=n-1; i>0; i--)
 {
  int t = array[i]; /*將根節(jié)點(diǎn)交換到數(shù)組末端*/
  array[i] = array[0];
  array[0] = t;

  HeapAdjust(0, i-1, array); /*重新調(diào)整堆*/
 }
}

/*array[s…m]和array[m+1…t]均已各自有序,合并使得array[s…t]有序*/
void Merge(int s, int m, int t, int *array)
{
 int temp[t-s+1];
 int i=s, j=m+1, k=0;
 while(i<=m && j<=t)
 {
  if(array[i] < array[j])
   temp[k++] = array[i++];
  else
   temp[k++] = array[j++];
 }
 while(i<=m)
  temp[k++] = array[i++];
 while(j<=t)
  temp[k++] = array[j++];

 for(i=s, k=0; i<=t && k<=t-s; i++, k++)
 {
  array[i] = temp[k];
 }
}
void MSort (int s, int t, int *array) /*遞歸調(diào)用*/
{
 if(s == t)
  return ;
 int m = (s+t)/2;
 MSort(s, m, array);
 MSort(m+1, t, array);
 Merge(s, m, t, array);
}
void MergeSort1(int n, int *array)
{
 MSort(0, n-1, array);
}
void MergeSort2(int n, int *array) /*非遞歸實(shí)現(xiàn)歸并排序*/
{
 int k, i;
 for (k=1; 2*k<n; k *= 2) /*設(shè)置每段待歸并的有序序列的長(zhǎng)度:1,2,4,8,16……*/
 {
  for (i=0; i+k-1<n; i += 2*k) /*考慮待歸并的左右兩段序列,[i+k-1]是左序列末尾元素下標(biāo)*/
  {        /*[end=i+2*k-1]是右序列末尾元素下標(biāo),end不應(yīng)該超過(guò)n-1*/
   int end=i+2*k-1;
   if(end > n-1)
    end = n-1;
   Merge(i, i+k-1, end, array);
  }
 }
}


int main()
{
 long start, stop;
 int n;
 printf("下面比較幾個(gè)時(shí)間復(fù)雜度為NlogN的排序算法效率高低,其他3個(gè)低效率的排序就不考慮了/n");
 printf("輸入待排序數(shù)量(int類型表示,在我的機(jī)器上超過(guò)100萬(wàn)就可能溢出):/n");
 scanf("%d", &n);
 int a[n], i;

 for(i=0; i<n; i++)
  a[i] = rand()%n;
 start = clock();
 ShellSort(n, a);
 stop = clock();
 printf("希爾排序%d個(gè)數(shù)據(jù)花費(fèi)時(shí)間為: %ldms/n", n, (stop-start)*1000/CLOCKS_PER_SEC);

 for(i=0; i<n; i++)
  a[i] = rand()%n;
 start = clock();
 HeapSort(n, a);
 stop = clock();
 printf("堆排序%d個(gè)數(shù)據(jù)花費(fèi)時(shí)間為: %ldms/n", n, (stop-start)*1000/CLOCKS_PER_SEC);

 for(i=0; i<n; i++)
  a[i] = rand()%n;
 start = clock();
 MergeSort1(n, a);
 stop = clock();
 printf("遞歸式歸并排序%d個(gè)數(shù)據(jù)花費(fèi)時(shí)間為: %ldms/n", n, (stop-start)*1000/CLOCKS_PER_SEC);

 for(i=0; i<n; i++)
  a[i] = rand()%n;
 start = clock();
 MergeSort2(n, a);
 stop = clock();
 printf("非遞歸式歸并排序%d個(gè)數(shù)據(jù)花費(fèi)時(shí)間為: %ldms/n", n, (stop-start)*1000/CLOCKS_PER_SEC);

 for(i=0; i<n; i++)
  a[i] = rand()%n;
 start = clock();
 QuickSort(0, n-1, a);
 stop = clock();
 printf("快速排序%d個(gè)數(shù)據(jù)花費(fèi)時(shí)間為: %ldms/n", n, (stop-start)*1000/CLOCKS_PER_SEC);

/* for(i=0; i<n; i++)
 {
  printf("%d ", a[i]);
 }
*/
 return 0;
}

本文主要內(nèi)容是關(guān)于排序算法的實(shí)現(xiàn)示例分享,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助~

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

国产午夜视频| 日韩欧美中文第一页| 免费中国女人69xxxxx视频| 伊人久久大香线蕉av一区| 成人国产精品一级毛片视频| 久草资源在线观看| 亚洲国产精品传媒在线观看| 国产伊人网av.| 久久久久久久久黄色| 天天做综合网| 青青草国产一区二区三区| 欧美久久亚洲| 在线亚洲一区二区| 亚洲精品福利资源站| 涩涩视频在线观看| 国产伦精品免费视频| 亚洲成人av免费| 永久免费网站视频在线观看| 亚洲精品一区二三区不卡| 在线a视频网站| 一本色道久久88综合亚洲精品ⅰ| 日韩av免费在线观看| 亚洲一区二区三区无码久久| 国产精品永久| 国产精品久久无码| 久久综合精品国产一区二区三区| 在线免费三级电影网站| 久久综合给合久久狠狠狠97色69| 日韩在线观看电影完整版高清免费悬疑悬疑| 亚洲综合色站| 久久久99国产精品免费| 99ri国产在线| 成年免费视频黄网站在线观看| 一区 二区 三区| 成人在线视频一区二区| 欧美精品videosbestsex另类| 中文字幕中文字幕一区三区| 亚洲成人免费| 一区二区不卡视频| 欧美激情一区在线观看| 亚洲一区在线免费观看| 国产精品久久久久久久久久精爆| 麻豆视频在线观看免费网站| yw193.com尤物在线| 男人的天堂av网站| 泷泽萝拉在线播放| 国产一区在线观看麻豆| 国产高清亚洲一区| 美女毛片一区二区三区四区最新中文字幕亚洲| xfplay爱情电影网love| 免费在线成人av| 婷婷综合电影| 欧美婷婷久久五月精品三区| 亚洲少妇中文字幕| 国产在线观看无码免费视频| 久久久久久久久久99| h视频在线免费| 久久亚洲高清| 成年人网站大全| 亚洲色精品三区二区一区| 日韩av黄色在线| 久久99久久久精品欧美| 美女xx视频| 91亚洲精品在线| 亚洲最新中文字幕| 大伊香蕉精品视频在线| 亚洲美女屁股眼交| 欧美国内亚洲| 天堂网www在线资源中文| 国产69精品久久久久按摩| 欧美日韩生活片| 福利精品视频在线| 日韩国产欧美精品| 国产精品美女毛片真酒店| 久久亚洲精精品中文字幕早川悠里| 美女一区二区三区| xxxx在线免费观看| 九九亚洲视频| 午夜日韩激情| 欧美黄色片在线观看| 亚洲视频天天射| 久久久青草婷婷精品综合日韩| 久色视频在线播放| 久久蜜桃av一区精品变态类天堂| 人人澡人人爽| 亚洲国产一区二区在线| 视频一区二区免费| 92裸体在线视频网站| 欧美黑白配在线| 日韩午夜高潮| 日韩av一卡| 国产老女人精品毛片久久| 中文字幕亚洲精品在线| 毛片在线免费视频| 日韩欧美不卡视频| 国产在线精品国自产拍免费| 男的操女的网站| 国内不卡一区二区三区| 日本成人a网站| 国产黄视频在线观看| 久久久久人妻精品一区三寸| 欧美成人精品二区三区99精品| 麻豆免费在线视频| 天堂在线视频网站| 亚洲高清网站| 久久久久久久久久久网站| 国产 欧美在线| 国产精品美女久久久久久久久| 欧美中文字幕久久| 老司机免费视频一区二区三区| 黄色片视频免费| 中文字幕乱码无码人妻系列蜜桃| 国产美女在线免费观看| 日韩在线视频观看| 日韩电影中文字幕在线观看| 国外亚洲成av人片在线观看| 五码日韩精品一区二区三区视频| 亚洲mm色国产网站| 免费在线观看污| 亚洲av无码国产精品永久一区| 国精品日韩欧美一区二区三区| 黄色激情网站| 亚洲一区二区四区蜜桃| 亚洲人辣妹窥探嘘嘘| 完全免费av在线播放| 欧美日韩一区二区精品| 日韩最新在线视频| 色天天色综合| 日本高清一二三区| 日韩在线视频免费播放| 一级黄色免费片| 俄罗斯精品一区二区三区| 美女一区二区三区视频| 欧美日韩在线视频免费观看| 亚洲人成色777777老人头| 日韩你懂的在线观看| 偷拍女澡堂一区二区三区| 成人免费精品视频| 亚洲特级毛片| 91精品视频一区| 黄色日韩在线| 国产激情在线免费观看| 国产传媒在线观看| a级片在线免费| 欧美日韩福利在线观看| 亚洲va在线va天堂| 免费污污视频在线观看| 欧美电影免费网站| 国产精品变态另类虐交| 亚洲精品视频大全| 精品国产91久久久| 亚洲天堂日韩av| 国产日韩换脸av一区在线观看| 久久久久久久国产| 欧美wwwwxxxx| 亚洲一区中文字幕| 亚洲第一视频在线观看| 精品丝袜一区二区三区| 麻豆视频一区| 日本精品一区二区三区在线播放视频| 91久久极品少妇xxxxⅹ软件| 午夜剧场免费在线观看| 日韩午夜电影在线观看| 宅男66日本亚洲欧美视频| 久久久久久免费网| 午夜激情电影在线播放| 在线观看精品一区二区三区| 国产午夜精品一区二区三区嫩草| 黄页网站在线免费观看| 三级黄色片网站| 亚洲免费不卡| 成人aaaa免费全部观看| 日韩禁在线播放| 国产精品嫩草影院8vv8| 午夜电影福利| 美女毛片免费看| 一区二区不卡视频在线观看| 拍拍拍在线观看视频免费| 日本网站在线观看一区二区三区| 91精品啪在线观看国产| 成人午夜福利视频| 日本护士...精品国| 亚洲国产婷婷香蕉久久久久久| 黑人巨大精品欧美| 日韩成人精品在线| 蜜臀精品一区二区三区在线观看| 91中文字幕在线| av磁力番号网| 嫩草伊人久久精品少妇av杨幂| 成人xvideos免费视频| 精品盗摄一区二区三区| 91国产视频在线| 高清不卡一区| 国产精品18久久久久久久久久久久| 国产精品videossex久久发布| 成人h视频在线观看| 日本国产精品| 国产综合欧美在线看| 在线观看av免费观看| 我不卡神马影院| 成人拍拍拍免费视频网站| 日本免费在线观看视频| 亚洲欧美日韩国产成人精品影院| 国产拍精品一二三| 中文字幕国产精品一区二区| 日本aa在线观看| 久久综合88中文色鬼| 一卡二卡三卡在线| 国产精品午夜久久久久久| 午夜久久美女| 亚洲国产三级| 99国产一区| 波多野结衣家庭教师在线观看| 精品三级久久久| 波多野结衣乳巨码无在线观看| 欧美精品久久久久久久久久久| 欧美va天堂va视频va在线| 北条麻妃久久精品| 中文字幕一区二区三区四区不卡| 日韩成人午夜| 亚洲欧美偷拍另类a∨色屁股| 成人黄色片视频网站| 在线免费视频一区| 欧美理论视频| 欧美日本韩国一区二区三区视频| caopen在线视频| 色综合色综合色综合色综合| 一二三四日本在线| 懂色av一区二区| 99欧美精品| 久久影院模特热| 日韩精品一区二区三区中文| 欧美三级日韩三级| 超碰成人久久| 日韩有码第一页| 丁香婷婷激情网| 国产黄在线免费观看| 国产精品视频第一区二区三区| 99久久精品国产色欲| 一区在线电影| 日韩在线网址| 久久影院一区二区三区| 91在线精品一区二区| 亚洲天堂久久久| 国产二区国产一区在线观看| 牲欧美videos精品| 369你懂的电影天堂| 在线播放性xxx欧美| 中文字幕的久久| 国产精品免费视频久久久| 国产一级片免费| 亚洲人精选亚洲人成在线| 久久久老熟女一区二区三区91| japanese在线| 性欧美videos| 免费看日产一区二区三区| 黄色片免费网址| 一二区成人影院电影网| 日韩中文字幕组| 美女被啪啪一区二区| 真人bbbbbbbbb毛片| 青青在线视频一区二区三区| 亚洲一区电影在线观看| 欧美人伦禁忌dvd放荡欲情| 自拍视频一区二区| 丰满少妇乱子伦精品看片| 玖玖精品在线视频| 久久精品中文字幕一区| 可以看av的网址| 91在线精品一区二区三区| 欧美bbb人妖| 国产69精品久久久久99| 亚洲国产精品第一区二区三区| 91精品国产综合久久婷婷香蕉| 欧美午夜精品免费| 韩国中文字幕hd久久精品| 三年中文高清在线观看第6集| 色啪啪.com| 动漫一区在线| 潘金莲激情呻吟欲求不满视频| 精品一区二区三区亚洲| 亚洲欧洲国产日韩| 四虎影院一区二区| 亚洲人成伊人成综合图片| 亚洲国产日韩欧美一区二区三区| 99电影网电视剧在线观看| 在线免费观看视频黄| 一区视频网站| 精品成人免费观看| 欧美精品粉嫩高潮一区二区| 免费精品99久久国产综合精品应用| www插插插无码视频网站| 欧美牲交a欧美牲交| 欧美高清www午色夜在线视频| 99r国产精品| 天使と恶魔の榨精在线播放| 青青草原国产在线| 国产欧美精品在线观看| 97caopor国产在线视频| 亚洲精品理论电影| 色老头一区二区三区在线观看| 日本激情视频一区二区三区| 天天久久人人| 女性裸体视频网站| 日本在线观看不卡视频| 国产精品jizz| 北条麻妃一区二区三区| 欧美黄色网络| 久久er精品视频| 欧美日韩aaaaaa| 中日韩精品视频在线观看| 欧美一区=区| 欧美日韩免费看片| 欧美人妻一区二区| 亚洲三级在线免费观看| 26uuu亚洲综合色欧美| 高清国产一区二区三区四区五区| 欧美一级视频免费观看| 精品国产成人系列| 欧美日本在线播放| 午夜久久久久久久久| 黄动漫网站在线观看| 日韩片在线观看| 久久综合成人精品亚洲另类欧美| 亚洲人成亚洲人成在线观看图片| 在线观看日韩av先锋影音电影院| 一区二区视频播放| www.成人爱|