#includestdio.h
成都創(chuàng)新互聯(lián)公司是專(zhuān)業(yè)的五通橋網(wǎng)站建設(shè)公司,五通橋接單;提供做網(wǎng)站、成都網(wǎng)站設(shè)計(jì),網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專(zhuān)業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行五通橋網(wǎng)站開(kāi)發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專(zhuān)業(yè)做搜索引擎喜愛(ài)的網(wǎng)站,專(zhuān)業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!
#includestring.h
int?findstr(char?*s_str,char?*d_str);
int?main(void)?{
char?s1[80],s2[80];
int?n;
printf("請(qǐng)輸入一個(gè)字符串:");
gets(s1);
printf("請(qǐng)輸入你要查找的字符串:");
gets(s2);
n=findstr(s1,s2);
printf("%s在%s里共有%d個(gè)\n",s2,s1,n);
return?0;
}
int?findstr(char?*s_str,char?*d_str)?{
int?i,j,k,count=0;
char?temp[80];
int?length=strlen(d_str);
for(i=0;istrlen(s_str);i++)?{
k=0;
for(j=i;ji+length;j++)
temp[k++]=s_str[j];
temp[k]='\0';
if(!strcmp(temp,d_str))?count++;
}
return?count;
}
1.索引表的類(lèi)型可定義如下:
struct IndexItem
{
IndexKeyType index;
//IndexKeyType為事先定義的索引值類(lèi)型
int start;
//子表中第一個(gè)元素所在的下標(biāo)位置
int length;
//子表的長(zhǎng)度域
};
2.首先根據(jù)給定的索引值K1,在索引表上查找出索引值等于K1的索引項(xiàng),以確定對(duì)應(yīng)子表在主表中的開(kāi)始位置和長(zhǎng)度,然后再根據(jù)給定的關(guān)鍵字K2,在對(duì)應(yīng)的子表中查找出
3。關(guān)鍵字等于K2的元素。
設(shè)數(shù)組A是具有mainlist類(lèi)型的一個(gè)主表,數(shù)組B是具有indexlist類(lèi)型的在主表A上建立的一個(gè)索引表,m為索引表B的實(shí)際長(zhǎng)度,即所含的索引項(xiàng)的個(gè)數(shù),K1和K2分別為給定
帶查找的索引值和關(guān)鍵字,并假定每個(gè)子表采用順序存儲(chǔ),則索引查找算法為:
int Indsch(mainlist A, indexlist B, int m, IndexKeyType K1, KeyType K2)
{//利用主表A和大小為 m 的索引表B索引查找索引值為K1,關(guān)鍵字為K2的記錄
//返回該記錄在主表中的下標(biāo)位置,若查找失敗則返回-1
int i, j;
for (i = 0; i m; i++)
if (K1 == B[i].index)
break;
if (i == m)
return -1; //查找失敗
j = B[i].start;
while (j B[i].start + B[i].length)
{
if (K2 == A[j].key)
break;
else
j++;
}
if (j B[i].start + B[i].length)
return j; //查找成功
else
return -1; //查找失敗
}
用索引做排序就可以了
void select_sort(int *a, int len) {
int Min;
int *index;
index=(int *)new int[len];
for ( int i=0;ilen;i++ ) index[i]=i;
for (int i = 0; i len - 1; i++) {
for (int j = 1 + i; j len; j++) {
if (a[index[i]] a[index[j]]) {
Min=index[i];
index[i]=index[j];
index[j]=Min;
}
}
}
for ( int i=0;ilen;i++ ) coutindex[i]' '; coutendl;
for ( int i=0;ilen;i++ ) couta[index[i]]' '; coutendl;
delete [] index;
}
你是想問(wèn) * 是什么意思吧
這是c里面的指針描述符和解引用符
例子
char *p;
char a;
p = a;
*p = 'A';
現(xiàn)在a里面已經(jīng)儲(chǔ)存 A 了
還有 c/c++ 里沒(méi)有索引運(yùn)算符,是不是你看錯(cuò)了
能簡(jiǎn)短的說(shuō)明一下你想要什么么,我的理解是給我一個(gè)數(shù)組,讓我排序,最后輸出一個(gè)從小到大(或從大到?。┑臄?shù)組的原數(shù)組元素下表。
比如是s[10]={21,51,12,0,61,81,91,41,71,31} 排序后a[10]={0,12,21,31,41,51,61,71,81,91}
輸出為3,2,0,9,7,1,4,8,5,6對(duì)應(yīng)0:s[3]=0,1:s[2]=12,2:s[0]=21,。。。。。。是這樣不?