解釋C語言中排序的概念
問題
為什麼排序使在C語言中搜索更容易?如何在C語言中判斷排序效率?
解答
排序是將元素按升序(或降序)排列的過程。
當人們意識到快速搜尋的重要性時,排序這個術語就出現了。
生活中有很多需要搜尋的東西,例如資料庫中的特定記錄、列表中的學號、電話簿中的號碼、書中的特定頁面等。
如果資料保持無序和未排序的狀態,則難以搜尋特定內容。但幸運的是,排序的概念應運而生,使每個人都能更容易地按順序排列資料。
排序將資料排列成序列,這使得搜尋更容易。
排序效率
如果我們想按順序排列一副撲克牌,我們會先檢查每一張牌,然後在繼續操作時相應地排列牌組。
按順序排列牌組需要花費很多時間,但我們仍然以同樣的方式進行操作。但是,計算機的工作方式並非如此。
從程式設計時代開始,科學家們就一直在研究用不同的演算法解決排序問題,以對資料進行排序。
判斷哪個演算法優於另一個演算法的標準如下:
- 對給定資料進行排序所需的時間。
- 為此所需的記憶體空間。
示例
以下是用於排序資料的C程式:
#include<stdio.h>
int main(){
int a[50], i,j,n,t,sm;
printf("enter the No: of elements in the list:
");
scanf("%d", &n);
printf("enter the elements:
");
for(i=0; i<n; i++){
scanf ("%d", &a[i]);
}
for (i=0; i<n-1; i++){
sm=i;
for (j=i+1; j<n; j++){
if (a[j] < a[sm]){
sm=j;
}
}
t=a[i];
a[i]=a[sm];
a[sm]=t;
}
printf ("after selection sorting the elements are:
");
for (i=0; i<n; i++)
printf("%d\t", a[i]);
return 0;
}輸出
執行上述程式時,將產生以下結果:
輸出
enter the No: of elements in the list: 4 enter the elements: 34 12 56 7 after selection sorting the elements are: 7 12 34 56
廣告
資料結構
網路
關係資料庫管理系統(RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP