A. c语言快速排序做索引数组
能简短的说明一下你想要什么么,我的理解是给我一个数组,让我排序,最后输出一个从小到大(或从大到小)的数组的原数组元素下表。
比如是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对应0:s[3]=0,1:s[2]=12,2:s[0]=21,。。。。。。是这样不?
B. C语言一维数组中如何查找指定元素
1、打开pycharm,新建Test_List.py,如图所示。
C. 用c语言怎么做索引数组
用索引做排序就可以了
void select_sort(int *a, int len) {
int Min;
int *index;
index=(int *)new int[len];
for ( int i=0;i<len;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;i<len;i++ ) cout<<index[i]<<' '; cout<<endl;
for ( int i=0;i<len;i++ ) cout<<a[index[i]]<<' '; cout<<endl;
delete [] index;
}
D. 如何用C语言进行索引排序
问题解决了吗,也也想知道方法
E. c语言可以用字符串作为数组的索引名(键名)吗
字符串不可以,,,,,,数字性质的值,如int
~~~~~~~~~
F. c语言编写索引数组
#include<stdio.h>
voidmain(void)
{
inti,j;
inta[5]={5,4,2,3,1};
intb[5]={0,1,2,3,4};//下标序号,数量多就自增赋值
intc,d;
printf("原数组: ");
for(i=0;i<5;i++)
{
printf("%2d",a[i]);
}
for(i=0;i<5;i++)
{
for(j=4-i;j<4;j++)
{
if(a[j]>a[j+1])//从小到大冒泡法交换大小同时交换下角标
{
c=a[j];
a[j]=a[j+1];
a[j+1]=c;
d=b[j];
b[j]=b[j+1];
b[j+1]=d;
}
}
}
printf(" 数组: ");
for(i=0;i<5;i++)
{
printf("%2d",a[i]);
}
printf(" 下标: ");
for(i=0;i<5;i++)
{
printf("%2d",b[i]);
}
getchar();
}
G. C语言中如何使用数组来索引链表谢谢
创建一个数组
最好是结构体的
一个域用来保存链表元素地址,一个域用来保存链表的关键字,比如值。
然后 在链表增加删除的时候,同步操作这个数组就好。
排序 移动什么的,不需要改。
不过 这样做意义不大。 很少有用数组做链表索引的。
H. C语言上的问题编写一个函数,返回一个double数组中存储的最大数值的索引,并在一个简单的程序中测试。
你的程序有问题,不是简单的语句错误,你的思路错了,你看一下你的程序根本就不是在找最大值的索引,而是在找第一次出现数字变小的那个数字的索引,这样说有点模糊,举几个例子,来说明一下你的程序是在干什么。例如,你要是搜索序列1,2,3,1,4,5,6那么会返回2,因为第二个数字(也就是3),开始第一次下降,因为下一个数字为1,比3小,所以你的程序就开始返回了,并且返回2。再举个例子,例如搜索序列2,4,6,8,5,7,9那么你的程序就会返回索引3,因为第三个数字(即8),开始出现下降,下一个数字为5,比8小,所以你的程序就开始返回了,并且返回值为8的索引3(即第3个数字)。 不知道你是否明白了,其实你的意思是想找出最大的那个,就只要max对所有的数字遍历一下,并且不断更新为更大的值,而且用max1紧随其后标记更新的最大值的索引,max1=i;而将return max1;放到调用函数的最后面一句就可以了。 如果你还是不太明白可以追问我,要是你真的明白了,可以做一下选择排序的题目,会让你加深理解的