二十八 快速查詢

2021-09-25 08:37:34 字數 1158 閱讀 2949

直接上**了,和快速排序沒什麼區別

#include //當元素個數達到一定數量時可以用簡單的排序演算法

#define cutoff 3

//插入排序

void insertionsort(int array, int size)

array[j] = temp; }}

//交換兩個值

void swap(int *i, int *j)

//取中值

int median(int array, int left, int right)

if(array[left] > array[right])

if(array[center] > array[right])

swap(&array[center], &array[right - 1]);

return array[right - 1];

}//快速選擇元件

void quickselectcomponment(int array, int left, int right, int searchindex)

; while(array[--rightpos] > piovt){};

if(leftpos < rightpos)

else

}swap(&array[leftpos], &array[right - 1]);

if(searchindex <= leftpos)

else if(searchindex > leftpos + 1)

}else }

//快速選擇,返回第k個最小的數

int quickselect(int array, int size, int searchindex)

quickselectcomponment(array, 0, size - 1, searchindex);

return array[searchindex - 1];

}int main(void)

; int size = sizeof(array)/sizeof(array[0]);

printf("%d\n", quickselect(array, size, 6));

return 0;

}

二十八 模組

模組 在電腦程式的開發過程中,隨著程式 越寫越多,在乙個檔案裡 就會越來越長,越來越不容易維護。為了編寫可維護的 我們把很多函式分組,分別放到不同的檔案裡,這樣,每個檔案包含的 就相對較少,很多程式語言都採用這種組織 的方式。在python中,乙個.py檔案就稱之為乙個模組 module 使用模組有...

Lua程式設計(二十八)

lua語言會在執行源 之前先對其進行預編譯。生成預編譯檔案 也被稱為二進位制檔案,binary chunk 的最簡單方式是,使用標準發行班中附帶的luac程式。luac o prog.lc prog.lua上述命令會建立檔案prog.lua的預編譯版本prog.lc。lua解析器會像執行普通lua ...

CUDA學習(二十八)

多處理器級別 在更低層次上,應用程式應該最大化多處理器內各個功能單元之間的並行執行 如 硬體多執行緒 中所述,gpu多處理器依賴於執行緒級並行性來最大限度地利用其功能單元。因此利用率與駐留經線的數量直接相關。在每個指令發布時間,乙個warp排程器選擇乙個準備好執行下乙個指令的warp 如果有的話 然...