Advertisement
Guest User

Untitled

a guest
Jun 24th, 2017
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.75 KB | None | 0 0
  1. #include <iostream>
  2. #include <queue>
  3. using namespace std;
  4.  
  5. typedef struct _cOmp {
  6. bool operator() (int a, int b) {
  7. return a > b;
  8. }
  9. } Comp;
  10.  
  11. void KFirstSort(int * arr, int k, int arrLen) {
  12.  
  13. priority_queue<int, vector<int>, Comp> setL;
  14. int * sortLen = (int *)malloc(sizeof(int)*(arrLen + 1));
  15.  
  16. for (int i = 0; i < arrLen; i++) {
  17. if (arr[i] == k)
  18. sortLen[0] = k;
  19. else
  20. setL.push(arr[i]);
  21. }
  22.  
  23. for (int i = 1; i < arrLen; i++) {
  24. sortLen[i] = setL.top();
  25. setL.pop();
  26. }
  27.  
  28. for (int i = 0; i < arrLen; i++) {
  29. arr[i] = sortLen[i];
  30. }
  31. free(sortLen);
  32. }
  33.  
  34. int main(void) {
  35. int arr[] = { 3, 4, 5, 1, 2 };
  36. int arrLen = sizeof(arr) / sizeof(arr[0]);
  37.  
  38. KFirstSort(arr, 4, arrLen);
  39.  
  40. for (int i = 0; i < 5; i++) {
  41. cout << arr[i] << " ";
  42. }
  43.  
  44. return 0;
  45. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement