/* Name: selectSort and insertSort Copyright: nyist Author: 潤青 Date: 01/10/18 19:30 Description: 實現了簡單選擇排序與直接插入排序 */ #include<stdio.h> int a[100]; int n; void selectSort(); void insertSort(); int main(){ scanf("%d",&n); for(int i=0;i<n;i++){ scanf("%d",&a[i]); } insertSort(); for(int i=0;i<n;i++){ printf("%d ",a[i]); } } void selectSort(){//從待排序部分元素中選取最小的,令其與待排序元素的第一個元素交換位置 for(int i=0;i<n;i++){ int k=i; for(int j=i;j<n;j++){ if(a[j]<a[k]){ k=j; } } int temp=a[i]; a[i]=a[k]; a[k]=temp; } } void insertSort(){//用已有序的後一個元素a與有序元素比較,找到a應該放的位置,讓a之後的元素後移一位,插入a for(int i=1;i<n;i++){ int temp=a[i],j=i; while(j>0&&temp<a[j-1]){ a[j]=a[j-1]; j--; } a[j]=temp; } }