//氣泡排序的過程(從小到大)
原始陣列
第一輪 1.3,9,-1,10,2
2.3,-1,9,10,2
3.3,-1,9,10,2
4.3,-1,9,-2,10
//第一大的數就移動到最後
第二輪 1.-1,3,9,-2,10
2.-1,3,9,-2,10
3.-1,3,-2,9,10
第三輪 1.-1,3,-2,9,10
2.-1,-2,3,9,10
第四輪-2,-1,3,9,10
#include//氣泡排序函式
void bubblesort(int arr,int arrlen)}}
}void main();
int arrlen=sizeof(arr)/sizeof(int);
int j;
bubblesort(arr,arrlen);//陣列預設是位址傳遞
printf("排序後");
for(j=0;j在c中,常用的查詢有兩種
#includeint seqsearch(int arr,int arrlen,int val)
//如果midval>findval說明,應該在midval的左邊查詢
if(midval>findval)else if(midvalfindval說明,應該在midval的左邊查詢
//3.如果midval多維陣列主要介紹二維陣列
比如開發乙個五子棋遊戲,棋盤就是需要二維陣列來表示
請用二維陣列輸出如下圖形
0 0 0 0 0 0
0 0 1 0 0 0
0 2 0 3 0 0
0 0 0 0 0 0
語法:型別 陣列名[大小 ] [大小]
比如:int a[2] [3]
二維陣列在記憶體的存在形式,各個元素的位址是連續分布的,即在前乙個元素基礎上加+4
#includevoid main()
}a[1][2]=1;
a[2][1]=2;
a[2][3]=3;
//輸出二維陣列
for(i=0;i<4;i++)
printf("\n");
}//看看二維陣列的記憶體布局
printf("二維陣列a的首位址=%p",a);
printf("二維陣列a[0]的位址=%p",a[0]);
printf("二維陣列a[0][0]的位址=%p",&a[0][0]);
printf("二維陣列a[0][1]的位址=%p",&a[0][1]);
//將二維陣列的各個元素的位址輸出
printf("\n");
for(i=0;i<4;i++)
printf("\n");
}getchar();
}
int arr[3] [2]=,,};
遍歷該二維陣列,並得到和
#include void main(),,};
//遍歷
//先得到行
得到這個map陣列的大小9*4=36
得到map中,第一行有多大3*4=12
int rows=sizeof(map)/sizeof(map[0]);
//printf("rows=%d",rows);
//得到列
int cols=sizeof(map[0])/sizeof(int);
int i,j,sum=0;
for(i=0;ivoid main(){
//分析
//1.建立乙個scores[3][5]
//2.遍歷,給複製
//3.再次遍歷,統計總分和平均分
//4.輸出
double score[3][5];
int rows=sizeof(score)/sizeof(score[0]),cols=sizeof(score[0])/sizeof(double),i,j;
//classtotalscore 各個班級總成績 totalscore 所有學生成績
double totalscore=0.0,classtotalscore=0.0;
for(i=0;i
查詢和排序
二分查詢演算法 def search list,m low 0 high len list 1 while low high mid low high 2 if list mid m high mid 1 elif list mid m low mid 1 else return mid retur...
排序和查詢
1 氣泡排序 雞尾酒排序 選擇排序 插入排序 快速排序 include 氣泡排序 voidmaopao int a,int n int i,j for i 0 i n 1 i for j 0 j n 1 i j if a j a j 1 swap a,j,j 1 交換兩個數 void swap in...
查詢和排序
題目描述 把乙個陣列最開始的若干個元素搬到陣列的末尾,我們稱之為陣列的旋轉。輸入乙個非遞減排序的陣列的乙個旋轉,輸出旋轉陣列的最小元素。例如陣列為的乙個旋轉,該陣列的最小值為1。note 給出的所有元素都大於0,若陣列大小為0,請返回0。思路 折半查詢。如果a mid 大於a right left ...