科大訊飛:2020 年經營性現金流淨額快速增長,再創歷史最好水平
阿新 • • 發佈:2021-02-08
1. 直接插入排序
將需要排序的元素按升序或降序插入到適當的位置。
2. 原理
以升序為例,從陣列第二個元素開始,從a[0]開始比較,若知道找到合適的位置,即保證比後面的元素小。
3.程式碼實現
#include <stdio.h>
//直接插入排序
void display(int arr[],int size)
{
for(int i=0;i<size;i++)
printf("%d ",arr[i]);
printf("\n");
}
void InsertSort(int arr[],int size) //以升序為例
{
int i,j;
for(i=1;i<size;i++)
{
if(arr[i-1]>arr[i])
{
int temp=arr[i];
for(j=i-1;j>=0 && arr[j]>temp;j--)
arr[j+1]=arr[j];
arr[j+1]=temp;
}
}
}
int main()
{
int arr[]={9,18,27,6,25,44,3,12,1};
int size=sizeof(arr)/sizeof(arr[0]);
printf("陣列大小為:%d\n" ,size);
display(arr,size); //排序前
InsertSort(arr,size);
display(arr,size); //排序後
return 0;
}
4.執行結果