答案如果有錯誤或有更好的方法,歡迎留言討論喔!
#import <Foundation/Foundation.h>
//*******************ch8-hw1*******************************
//修改後的bubblesort
void bubble_sort(int data[],int n);
void printData(int data[], int n);
int main (int argc, const char * argv[])
{
@autoreleasepool {
int data[]={81,58,23,72,43};
//印出資料
printf("Unsorted data:");
printData(data, 5);
//氣泡排序
bubble_sort(data, 5);
//印出排序資料
printf("排序完成:");
printData(data, 5);
}
return 0;
}
void bubble_sort(int data[],int n)
{
int i, j , temp, flag;
//n-1個pass
for (i=0; i<n-1; i++) {
flag=0;//輔助判斷資料是否對調
//共有n-i-1個compare
for (j=0; j<n-i-1; j++) {
if (data[j] > data[j+1]) {
flag=1;
//資料對調
temp=data[j];
data[j]=data[j+1];
data[j+1]=temp;
printf("After #%i-%i compare: ",i+1,j+1);
printData(data, 5);
}
}
printf("After #%i pass: ",i+1);
printData(data, 5);
//當flag!=1時,表示資料已排序
if (flag!=1) {
break;
}
}
}
void printData(int data[],int n){
//印出資料
for (int i=0; i<n; i++) {
printf("%4i",data[i]);
}
printf("\n\n");
}
沒有留言:
張貼留言