9 solutions
- 1
Information
- ID
- 109
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 7
- Tags
- # Submissions
- 343
- Accepted
- 88
- Uploaded By
这题,我觉得 放在这里 是想 让大家 手写 一下 一些 排序算法的。要不然 放在这里的 意义 真没多大。手写 排序 其实 真的 挺重要的,我听一个 大佬说过,有时候 要自己 写排序的。而且 排序的思想 很基础。
#include <iostream>
using namespace std;
int arr1[500005];
void quickSort(int l, int r) {
if (l >= r) {
return;
}
//int ic = arr1[r];
int midIndex = arr1[r];
int s = l;
int e = r - 1;
while (true) {
while (s < r && arr1[s] < midIndex) {
s++;
}
while (e >= l && arr1[e] > midIndex) {
e--;
}
if (s < e) {
int temp = arr1[s];
arr1[s] = arr1[e];
arr1[e] = temp;
// 继续 往下搜
s++;
e--;
}
else {
break;
}
}
int temp = arr1[s];
arr1[s] = arr1[r];
arr1[r] = temp;
quickSort(l,s - 1);
quickSort(s + 1, r);
}
int main(void) {
int n;
cin >> n;
for (int i = 0; i < n; ++i) {
cin >> arr1[i];
}
quickSort(0, n - 1);
for (int i = 0; i < n; ++i) {
cout << arr1[i] << " ";
}
return 0;
}
#define MaxSize 300001
int hash[MaxSize];
int main(){
int num;
int n;
scanf("%d",&num);
for(int i=0; i<num; i++){//整数的个数
scanf("%d",&n);
hash[n]+=1;
}
for(int i=0; i<MaxSize; i++){
if(hash[i]>0){
for(int j=0; j<hash[i]; j++){
printf("%d ",i);
}
}
}
}
使用哈希数组,数组下标就是值
By signing up a 追梦算法网 universal account, you can submit code and join discussions in all online judging services provided by us.