C語言排序演算法

2022-02-16 02:01:53 字數 1530 閱讀 6322

#include #include 

#include

#include

#define arraysize 10

intdata[arraysize];

void

initdata()

}void printdata(char *string

) printf("\n

");}void swap(int i,int

j)/*

直接插入排序。從第乙個元素開始,形成長度為1,2,3乃至n的有序陣列,

選取第n+1個元素插入到有序陣列中,直到最後乙個元素,從而形成有序排列的陣列

*/void directinsertsort(int data, int

length)

else

data[left+1] =temp;

index++;

}}}/*

氣泡排序。如其名,從第乙個元素開始,依次比較相鄰的兩個元素

並始終保證較大的元素在右側,從而通過一次次的排序將大元素放在右側小元素放在左側。

*/void bubblesort(int data, int

length)

}index--;

if(flag==-1

)

break

; }}/*

選擇排序。顧名思意,就是直接從待排序陣列裡選擇乙個最小(或最大)的數字,

每次都拿乙個最小數字出來,順序放入新陣列,直到全部拿完

*/void selectsort(int data, int

length)

}data[minindex] =data[index];

data[index] =min;

index++;

}}/*

快速排序

*/void quicksort(int data,int left,int

right)

data[i] = base

; quicksort(data,left,i-1

); quicksort(data,i+1

,right);

}}/*

希爾排序。在直接插入排序的基礎上增加了乙個增量。

*/void shellsort(int data,int

length)

data[j+gap] =temp;

}gap /= 2

; }}/*

歸併排序

*/ void merge(int data,int low,int mid,int

high)

else

}while(i <=mid)

while(j <=high)

for(k = 0,i = low;i <= high;k++,i++)

}void mergesort(int data,int low,int

high)

}int main(void

)

c語言排序演算法

很多朋友是以譚浩強老師編的 c語言教程 作為學習 c語言的入門教程的。書中涉及排序問題一般都以 冒泡法 和 選擇法 實現。為了擴大視野,增加學習程式設計的興趣,我參閱了有關書籍,整理了幾種排序法,寫出來同大家共勉。高手們不要笑,這篇文章是寫給出學者的,而且我自己也是只菜鳥,雖然內容陳舊,但值得初學者...

c語言排序演算法

c語言排序演算法 非穩定的排序演算法 選擇排序 快速排序 希爾排序 堆排序 穩定的排序演算法 氣泡排序 插入排序 歸併排序和基數排序是穩定的排序演算法。讓我們先定義乙個整型陣列a n 下面用五種方法對其從小到大排序。1 冒泡法 冒泡法大家都較熟悉。其原理為從a 0 開始,依次將其和後面的元素比較,若...

C語言排序演算法

1.插入排序 一般來說,插入排序都採用in place在陣列上實現。具體演算法描述如下 從第乙個元素開始,該元素可以認為已經被排序 取出下乙個元素,在已經排序的元素序列中從後向前掃瞄 如果該元素 已排序 大於新元素,將該元素移到下一位置 重複步驟3,直到找到已排序的元素小於或者等於新元素的位置 將新...