排序演算法實踐

2021-07-03 12:25:45 字數 1159 閱讀 7905

輸入有兩行,第一行是乙個正整數,表示有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.計數排序 排序演算法是一種基本並且常用的演算法。由於實際工作中處理的數量巨大,所以排序演算法 對演算法本身的速度要求很高。而一般我們所謂的演算法的效能主要是指演算法的...