計算機領域,排序和查詢是兩種最基本的操作任務,幾乎在所有資料庫程式、程式設計程式和作業系統中都有應用。排序是把一系列資料按公升序或降序排列的過程,也就是將乙個無序大的資料序列調整為有序序列的過程,它往往占用很多cpu的執行時間。
至今已經產生了許多比較成熟的排序演算法,如交換法、選擇法、插入排序法、冒泡法、快速排序法等。交換法雖然執行效率較低而且很少使用,但它對於理解後面將要介紹的選擇法很有好處。
先將第乙個數分別與後面所有的數進行比較,若後面的數小(降序時未大),則交換後面這個數和第乙個數的位置,否則不交換;這一輪比較全部結束以後,就求出了乙個最小(降序時為最大)的數放在第二個數的位置。然後進入第三輪比較,……直到第n-1輪比較,求出乙個最小(降序時為大)的數放在n-1個數的位置,剩下的最後乙個數自然就最大(降序時為最小)的數,放在最後。n個數總共需要進行n-1輪比較。按降序排序每輪比較過程如圖
編寫交換法排序的部分程式:
for(i=0;i
for(j=i+1;j
if(score[j]>score[i])//這樣的比較表示按降序排序
temp=score[j];//這裡temp起到」空瓶子「的作用,稱為中間變數
score[j]=score[i];
score[i]=temp;
c語言雙鏈表排序交換節點 雙向鍊錶排序C語言程式
雙向鍊錶排序.cpp 定義控制台應用程式的入口點。include include include define len sizeof struct node struct node int data struct node next struct node last struct list stru...
C 單鏈表操 作交換節點
鍊錶是最為常見,並且經常需要使用到的資料結構之一。對於單鏈表的基本操作,例如建立鍊錶 插入 刪除等都不是特別複雜,但是其實對於鍊錶的操作實際上很多的操作還是有一定的難度,例如上次給出的單鏈表的逆轉,以及這裡的單鏈表交換兩個節點。單鏈表的交換節點的含義是 給定乙個單鏈表,要求交換其中的任意兩個節點。注...
C語言 雙鏈表
還是 程式設計師面試寶典 上的 include include typedef struct student dnode 建立雙鏈表 dnode create else cycle 0 p next null p head head head next head pre null free p 釋放...