直接上**了,和快速排序沒什麼區別
#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 如果有的話 然...