這篇文章主要講解了“C語言怎么實現(xiàn)插入排序算法”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“C語言怎么實現(xiàn)插入排序算法”吧!
成都創(chuàng)新互聯(lián)專注于鹿邑企業(yè)網(wǎng)站建設,自適應網(wǎng)站建設,商城網(wǎng)站開發(fā)。鹿邑網(wǎng)站建設公司,為鹿邑等地區(qū)提供建站服務。全流程按需網(wǎng)站建設,專業(yè)設計,全程項目跟蹤,成都創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務
一、什么是直接插入算法?
直接插入排序是一種簡單的插入排序法,其基本思想是:把待排序的紀錄按其關鍵碼值的大小逐個插入到一個已經(jīng)排好序的有序序列中,直到所有的紀錄插入完為止,得到一個新的有序序列。
選擇排序對大小為N的無序數(shù)組R[N]進行排序,進行N-1輪選擇過程。首先將第1個元素作為已經(jīng)排序好
的子數(shù)組,然后將剩余的N-1個元素,逐個插入到已經(jīng)排序好子數(shù)組;。因此,在第 i輪排序時,前i個
元素總是有序的,將第i+1個元素插入到正確的位置。
二、算法實現(xiàn)過程:
第1輪
[ 3 ] [ 2 4 1 ] (最初狀態(tài),將第1個元素分為排序好的子數(shù)組,其余為待插入元素)
[ 3 ] [ 2 4 1 ] (由于3>2,所以待插入位置j=1)
[ 2 3 ] [ 4 1 ] (將2插入到位置j)
第2輪
[ 2 3 ] [ 4 1 ] (第1輪排序結果)
[ 2 3 ] [ 4 1 ] (由于2<4,所以先假定j=2)
[ 2 3 ] [ 4 1 ] (由于3<4,所以j=3)
[ 2 3 4 ] [ 1 ] (由于4剛好在位置3,無需插入)
第3輪
[ 2 3 4 ] [ 1 ] (第2輪排序結果)
[ 2 3 4 ] [ 1 ] (由于1<2,所以j=1)
[1 2 3 4 ] (將1插入位置j,待排序元素為空,排序結束)
三、C語言程序代碼
#include
int main(void)
{
int i;
int a[10]={2,4,6,8,0,1,3,5,7,9};
printf("原數(shù)組為:");
for(i=0;i<10;i++)
{
printf("%d ",a[i]);
}
printf("\n") ;
crpx(a,10);
printf("排序后的數(shù)組為:");
for(i=0;i<10;i++)
{
printf("%d ",a[i]);
}
return 0;
}
int crpx(int *a,int n)
{
int in,out,tmp;
for(out=1;out
tmp=a[out];
in=out;
while(in>0&&a[in-1]>tmp)
{
a[in]=a[in-1];//大的數(shù)向后移一位
in--;
}
a[in]=tmp;
}
}
感謝各位的閱讀,以上就是“C語言怎么實現(xiàn)插入排序算法”的內容了,經(jīng)過本文的學習后,相信大家對C語言怎么實現(xiàn)插入排序算法這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關知識點的文章,歡迎關注!