輸入有兩行,第一行是乙個正整數,表示有n個同學參與調查(n <= 100)。第二行有n個用空格隔開的正整數,為每本圖書的isbn號(假設圖書的isbn號在 1-1000之間);
輸出有兩行,第一行是乙個正整數k,表示需要買多少本書。第二行是k個用空格隔開的正整數,為從小到大已排序的需要購買的圖書的isbn號。
先排序,再去重。或者 先去重,再排序。
第一種方法,桶排序
#include int main()
}printf("需要購買 %d 本書\n", k);
printf("輸出isbn號:");
for (i = 0; i < 1001; i++)
getchar();
getchar();
return 0;
}
第二種:氣泡排序
#include int main()
/*氣泡排序, 從小到大*/
for (i = 0; i < num -1; i++)
for (j = 0; j < num - 1 - i; j++)
}printf("輸出isbn號:");
for (i = 0; i < num; i++)
} printf("\n需要購買 %d 本書\n", k);
getchar();
getchar();
return 0;
}
第三種:快速排序
#include int isbn[1000];
int num;
/*從小到大排序*/
void quicksort(int left, int right)
} isbn[left] = isbn[i];
isbn[i] = temp;
quicksort(left, i-1);
quicksort(i + 1, right);
}int main()
}printf( "\n需要購買 %d 本書\n" , k);
getchar();
getchar();
return 0;
}
排序演算法實踐
那天閱讀 之美 這本書的章節,寫個程式試試其中的排序演算法的例子,執行成功後,突然想試試和vc9自帶的 stl sort函式比較一下,測試結果出乎我所料,這個例子比stl 的sort函式一般快上3 4倍之多,覺得很是奇怪,檢查了一下,發現應該是debug版的原因,切換到release版再測,對於小資...
各常見排序演算法實踐
如題。實踐了下幾種比較常見的內排演算法。並對各種排序演算法的執行效率也排了個序。資料量不大的情況下,一般是堆排比較快。資料量很大時,快排才會有優勢。截圖如下 為了更清楚看到結果,執行的是debug版。呵呵。下面來一段bt點的。看過 瘋狂的程式設計師 嗎?p162最後乙個段落開頭有這樣一句話 絕影晃眼...
10種排序演算法,沒有實踐
1.氣泡排序 2.選擇排序 3.插入排序 4.交換排序 5.歸併排序 6.快速排序 7.希爾排序 8.堆排序 9.雙向氣泡排序 10.計數排序 排序演算法是一種基本並且常用的演算法。由於實際工作中處理的數量巨大,所以排序演算法 對演算法本身的速度要求很高。而一般我們所謂的演算法的效能主要是指演算法的...