知識點:排序
在c語言中,對一組資料進行排序有多種方法:交換排序、選擇排序、氣泡排序、插入排序、希爾排序、歸併排序、以及快速排序等
其中氣泡排序和交換排序比較簡單,交換排序是又是選擇排序的基礎。以下這個例子包含幾種排序方法,以對分數降序排序為背景,使用鍊錶,順便填補對鍊錶中資料排序的空白。
1 #include 2 #include3 #include 4
struct
link5;
9void displaynode(int *pdata,int
n);10
11void exchangesort(int n,int *pdata);
12void selectionsort(int n,int *pdata);
13void bubblesort(int n,int *pdata);
14void instersort(int n,int *pdata);
15void shellsore(int n,int *pdata);
16void quicksort(int n,int *pdata);
17int
main()
1830
displaynode(pdata,n);
31//
exchangesort(n,pdata);
32//
selectionsort(n,pdata);
33//
bubblesort(n,pdata);
34//
instersort(n,pdata);
35//
shellsore(n,pdata);
36quicksort(n,pdata);
37displaynode(pdata,n);
38return0;
39}4041
4253
if(head==null)
5460
else
6167 pr->next=p;
68 p->data=score;
69 p->next=null;
70 pdata[i]=p->data;71}
72return
head;73}
7475
void displaynode(int *pdata,int
n)76
82 printf("\n"
);83}84
85void exchangesort(int n,int *pdata)
8698
}99 printf("
\nexchange times:%d\n
",count);
100}
101102
void selectionsort(int n,int *pdata)
103113
if(i!=k)
114120
}121 printf("
selection times %d\n
",count);
122}
123124
void bubblesort(int n,int *pdata)
125137
}138
}139
}140
141void instersort(int n,int *pdata)
142154
else
155158
}159
}160
}161
162void shellsore(int n,int *pdata)
163180
else
181184
}185
}186
}187
}188
}189
190void quicksort(int n,int *pdata)
191206 temp=pdata[i];
207 pdata[i]=pdata[j];
208 pdata[j]=temp;
209}
210quicksort(i,pdata);
211 quicksort(n-i,pdata+i);
212 }
題目:知識點:插入排序
分析:因為這道題給出的一組數已經排好序了,只需按公升序排序插入乙個數,所以插入的時候乙個迴圈就可以,很簡單。
題解:
1 #include 2 #include 3void display(int arr,int
m);4
intmain()5;
8int
m,n;
9while(scanf("
%d %d
",&m,&n) !=eof)
1018
for(i=m;i>0;i--)
1926
else
2730}31
for(j=0;j)
3235 printf("%d"
,arr[m]);
36 printf("\n"
);37}38
return0;
39 }
但注意輸出格式,否則很容易"presentation error".
知識點總結報告 2 3
知識點 列舉 列舉 enumeration 是c的基礎資料結構之一不是構造資料結構,即一一枚舉之意。在列舉思想就是把有限個可能全部列舉出來。列舉法的本質就是從所有候選答案中去搜尋正確的解,使用該演算法需要滿足兩個條件 1 可預先確定候選答案的數量 2 候選答案的範圍在求解之前必須有乙個確定的集合。列...
知識點總結報告 1 22
知識點 棧,棧是一種c資料結構,是一種只能在表尾進行增刪操作的線性表,特點是後進入的資料先出來,最先進入的資料最後出來,即filo first in last out 就像桶裝薯片一樣。棧是自己定義的結構體,有順序棧和鍊錶棧。乙個順序棧至少包含乙個陣列,乙個指向已經存入資料的頂部指標和底部指標。佇列...
知識點總結報告 1 20
素數 知識點 判斷乙個數n是素數的方法就是如果從2到sqtr n 之間沒有乙個數能整除n,那麼n就是素數。例題 分析 首先輸入乙個數n然後從n 2 m 開始往下判斷是否是素數,如果是則進一步判斷n m是否是素數,如果都是則輸出並跳出迴圈。題解 1 include 2 include 3 int is...