中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

數(shù)據(jù)庫(kù)實(shí)現(xiàn)原理#2(獲取第N個(gè)值)-創(chuàng)新互聯(lián)

獲取數(shù)組中的第N個(gè)值,仍使用代碼說(shuō)明,算法參考快速排序的思想,詳見(jiàn)代碼注釋.

成都創(chuàng)新互聯(lián)專(zhuān)注于中山網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供中山營(yíng)銷(xiāo)型網(wǎng)站建設(shè),中山網(wǎng)站制作、中山網(wǎng)頁(yè)設(shè)計(jì)、中山網(wǎng)站官網(wǎng)定制、小程序定制開(kāi)發(fā)服務(wù),打造中山網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供中山網(wǎng)站排名全網(wǎng)營(yíng)銷(xiāo)落地服務(wù)。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "../pub/pub.h"
//tmparr : 待處理的數(shù)組
//counter : 數(shù)組元素個(gè)數(shù)
//n : 從小到大排列,第n個(gè)數(shù)字(從0開(kāi)始計(jì)數(shù))
static int quicksort_nth_recursion(int tmparr[],int counter,int n)
{
  //DEBUG : 數(shù)組信息
  //print_array(tmparr,counter);
  //任意取一個(gè)值,找到該值的位置
  int pos = 0;
  int randompos = rand() % counter;
  //把選定的值移到第一個(gè)位置
  swap(tmparr,0,randompos);
  for(int i=1;i < counter;i++)
  {
    //從1開(kāi)始遍歷,如遍歷的元素小于選定的值,則把pos加一并吧該值移到pos所在的位置
    //循環(huán)完成后,小于隨機(jī)選擇值的數(shù)會(huì)在pos的左邊,大于等于選擇值的在pos的右邊
    if(tmparr[i] < tmparr[0])
    {
      //如果遍歷
      swap(tmparr,++pos,i);
    }
  }
  //printf("value = %d,counter = %d,target = %d,pos = %d\n",tmparr[0],counter,n,pos);
  //把選定的值移到它該在的地方
  swap(tmparr,pos,0);
  if(pos == n)
    return tmparr[pos];
  //遞歸處理
  if(pos < n)//在右邊的數(shù)組中
    quicksort_nth_recursion(tmparr+(pos+1),counter-(pos+1),n-(pos+1));
  else//在左邊的數(shù)組中
    quicksort_nth_recursion(tmparr,pos,n);
}
void main(void)
{
  //參數(shù):第1個(gè)/中間/最后一個(gè)
  int pos[3] = {1,0,0};
  int result = 0,counter = 0;
  int arr[] = {4,10,25,100,53,103,50,40,77,9,5,1,65,19,60,51,500};
  counter  = sizeof(arr)/sizeof(int);
  pos[1] = (counter+1)/2;//中位數(shù)
  pos[2] = counter;//大值
  for(int i = 0;i < 3;i++)
  {
    result = quicksort_nth_recursion(arr,counter,pos[i]-1);
    printf("---------- The No.%d result is %d ----------\n",pos[i],result);
  }
  printf("------------------------------------------------------------\n");
  int arr2[1<<16];
  srand(38838);
  for(int i=0;i < 1<<16;i++)
  {
    arr2[i] = rand();
  }
  counter  = sizeof(arr2)/sizeof(int);
  pos[1] = (counter+1)/2;
  pos[2] = counter;
  for(int i = 0;i < 3;i++)
  {
    result = quicksort_nth_recursion(arr2,counter,pos[i]-1);
    printf("---------- The No.%d result is %d ----------\n",pos[i],result);
  }
}

運(yùn)行輸出

helloworld@DESKTOP-BRAEUTR /d/yunpan/Work/Z-SRC/sort
$ /d/tmp/test.exe
---------- The No.1 result is 1 ----------
---------- The No.9 result is 50 ----------
---------- The No.17 result is 500 ----------
------------------------------------------------------------
---------- The No.1 result is 0 ----------
---------- The No.32768 result is 16541 ----------
---------- The No.65536 result is 32767 ----------

當(dāng)前標(biāo)題:數(shù)據(jù)庫(kù)實(shí)現(xiàn)原理#2(獲取第N個(gè)值)-創(chuàng)新互聯(lián)
當(dāng)前路徑:http://www.rwnh.cn/article16/dscdgg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版建站公司、企業(yè)網(wǎng)站制作、網(wǎng)站制作、網(wǎng)頁(yè)設(shè)計(jì)公司、電子商務(wù)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化
博兴县| 平乡县| 神池县| 讷河市| 高碑店市| 屯昌县| 皋兰县| 永安市| 财经| 伊宁县| 台山市| 遵义市| 灵山县| 中宁县| 舞钢市| 姜堰市| 禄丰县| 云安县| 疏附县| 泗水县| 遂宁市| 华阴市| 五莲县| 长垣县| 孝昌县| 改则县| 山丹县| 罗田县| 清镇市| 东丽区| 巩义市| 古蔺县| 黄平县| 梁河县| 迁安市| 海城市| 资阳市| 丁青县| 邢台市| 陵水| 开封市|