C語言排序算法之插入排序
算法實現(xiàn):
使用插入排序?qū)⑾旅娴臄?shù)字按照從小到大的順序排列

步驟1:數(shù)組中已經(jīng)排好的是{1},將9插入數(shù)組中

步驟2:數(shù)組中已經(jīng)排好的是{2,9},將5插入數(shù)組中

步驟3:數(shù)組中已經(jīng)排好的是{2,5,9},將4插入數(shù)組中

步驟4:數(shù)組中已經(jīng)排好的是{2,4,,5,9},將8插入數(shù)組中

步驟5:數(shù)組中已經(jīng)排好的是{2,4,,5,8,9},將1插入數(shù)組中

步驟6:數(shù)組中已經(jīng)排好的是{1,2,4,,5,8,9},將6插入數(shù)組中

步驟7:排序完成

程序代碼:
#include <stdio.h>
#include <stdlib.h>
//插入排序
void InsertSort(int *a,int len);
//輸出數(shù)組中的元素
void OutputArray(int *a, int len);
void main()
{
int a[7] = {2, 9, 5, 4, 8, 1, 6};
//輸出數(shù)組中的元素
printf("排序前的數(shù)據(jù):");
OutputArray(a,7);
//插入排序
InsertSort(a,7);
//輸出排序后的結(jié)果
printf("排序后的數(shù)據(jù):");
OutputArray(a,7);
system("pause");
}
//插入排序
void InsertSort(int *a,int len)
{
for(int i=1;i<len;i++)
{
int j=i-1;
int temp=a[i];//需要插入的數(shù)據(jù)
while(temp<a[j] && j>=0)//當插入的數(shù)據(jù)小于前面的數(shù)據(jù)時
{
a[j+1]=a[j];//將插入的數(shù)據(jù)的前面的數(shù)據(jù)向后移動
j--;
}
a[++j]=temp;//插入數(shù)據(jù)
}
}
//輸出數(shù)組中的元素
void OutputArray(int *a, int len)
{
for(int i=0; i<len; i++)
{
printf("%d ",a[i]);
}
printf("\n");
}
執(zhí)行結(jié)果::

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
COLORREF,COLOR,RGB,CString的轉(zhuǎn)化總結(jié)分析
實際的軟件開發(fā)過程中,常需要用到非.net平臺的代碼。這時候就可能碰到ColorRef(也就是以int類型代表的顏色值或是以DWORD值表示的顏色)。這跟.net平臺下的顏色的相互轉(zhuǎn)換MS并沒有直接實現(xiàn)2013-09-09
C++動態(tài)規(guī)劃實現(xiàn)查找最長公共子序列
這篇文章主要介紹了C++動態(tài)規(guī)劃最長公共子序列,在動態(tài)規(guī)劃中,你要將某個指標最大化。在這個例子中,你要找出最長公共子序列2022-06-06

