程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 純C語言:分治查找第K個最小元素源碼

純C語言:分治查找第K個最小元素源碼

編輯:關於C語言

#include
void fun(int array[],int low,int high)
{
    int i = low;
    int j = high;  
    int temp = array[i];          
    while(i < j) 
    {
		while((array[j] >= temp) && (i < j))
		{ 
			j--; 
			array[i] = array[j];
		}
        while((array[i] <= temp) && (i < j))
        {
            i++; 
			array[j]= array[i];
		}
    }
    array[i] = temp;
	if(i-1>low)
	{
        fun(array,low,i-1);
	}
	if(high>i+1)
	{
        fun(array,j+1,high);
	}
    else
    {
        return;
    }
}
void main()
{
    int array[10];
	printf("輸入十個數字進行查找第k個小元素:\n");
	for(int i=0;i<10;i++)
	{
		printf("請輸入第%d個數:",i+1);
		scanf("%d",&array[i]);
	}
	fun(array,0,9);
	int k;
	printf("輸入要查找的第幾個小元素:");
	scanf("%d",&k);
    printf("查找的這個元素為:%d ",array[k-1]);
    printf("\n");
}




2
#include
#include
void interchange(int* m,int* n)
{
	int temp=*m;
	*m=*n;
	*n=temp;

}
int partition(int array[],int p,int q)
{
	int i,j;
	i=p;
	j=q+1;
	while(1)
	{
		do i++;
		while((array[i]array[p])&&(j!=p));
		if(i>n;
	int* a=(int*)malloc(n*sizeof(int));

	for(i=0;i>a[i];
	}
	cout<i;
	    if(i<=n)
			break;
		cout<<"溢出!"<						

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved