Advertisement
DanikKUL

Некоторые виды сортировок

Oct 25th, 2021
232
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.79 KB | None | 0 0
  1. int *sort_ascending_selection(int arr[],size_t n){
  2.     for(int i = 0; i < n; i++){
  3.         for (int j = 0; j < n; j++){
  4.             if(arr[i] < arr[j]){
  5.                 int buff=arr[i];
  6.                 arr[i]=arr[j];
  7.                 arr[j]=buff;
  8.             }
  9.         }
  10.     }
  11.     return arr;
  12. }
  13. int *sort_descending_selection(int arr[],size_t n){
  14.     for(int i = 0; i < n; i++){
  15.         for (int j = 0; j < n; j++){
  16.             if(arr[i] > arr[j]){
  17.                 int buff=arr[i];
  18.                 arr[i]=arr[j];
  19.                 arr[j]=buff;
  20.             }
  21.         }
  22.     }
  23.     return arr;
  24. }
  25. int *sort_ascending_insert(int arr[],size_t n){
  26.     int j;
  27.     for (int i = 0; i < n; ++i) {
  28.        j = i - 1;
  29.        int k = arr[i];
  30.        while(j >= 0 && k < arr[j]){
  31.            arr[j-- + 1] = arr[j];
  32.            arr[j + 1] = k;
  33.        }
  34.     }
  35.     return arr;
  36. }
  37. int *sort_descending_insert(int arr[],size_t n){
  38.     int j;
  39.     for (int i = 0; i < n; ++i) {
  40.         j = i - 1;
  41.         int k = arr[i];
  42.         while(j >= 0 && k > arr[j]){
  43.             arr[j-- + 1] = arr[j];
  44.             arr[j + 1] = k;
  45.         }
  46.     }
  47.     return arr;
  48. }
  49. int *sort_ascending_bubble(int arr[], size_t n){
  50.     for (int i = 0; i < n; ++i) {
  51.         for (int j = 1; j < n; ++j) {
  52.             if(arr[j - 1] > arr[j]){
  53.                 int buff = arr[j];
  54.                 arr[j] = arr[j - 1];
  55.                 arr[j - 1] = buff;
  56.             }
  57.         }
  58.     }
  59.     return arr;
  60. }
  61. int *sort_descending_bubble(int arr[], size_t n){
  62.     for (int i = 0; i < n; ++i) {
  63.         for (int j = 1; j < n; ++j) {
  64.             if(arr[j - 1] < arr[j]){
  65.                 int buff = arr[j];
  66.                 arr[j] = arr[j - 1];
  67.                 arr[j - 1] = buff;
  68.             }
  69.         }
  70.     }
  71.     return arr;
  72. }
  73. int *sort_ascending_shaker(int arr[], int n){
  74.     int stop,start;
  75.     int buff;
  76.     start = 0;
  77.     stop = n - 1;
  78.     for (int i = -1; start <= stop; ++i) {
  79.  
  80.         for (int j = start; j <= stop; ++j) {
  81.             if(arr[j] < arr[j - 1]) {
  82.                 buff = arr[j];
  83.                 arr[j] = arr[j - 1];
  84.                 arr[j - 1] = buff;
  85.             }
  86.         }
  87.         stop--;
  88.         for (int j = stop; j >= start; --j) {
  89.             if(arr[j] < arr[j - 1]) {
  90.                 buff = arr[j];
  91.                 arr[j] = arr[j - 1];
  92.                 arr[j - 1] = buff;
  93.             }
  94.         }
  95.         start++;
  96.  
  97.     }
  98.     return arr;
  99. }
  100. int *sort_descending_shaker(int arr[], int n){
  101.     int stop,start;
  102.     int buff;
  103.     start = 1;
  104.     stop = n - 1;
  105.     for (int i = 0; start <= stop; ++i) {
  106.  
  107.         for (int j = start; j <= stop; ++j) {
  108.             if(arr[j] > arr[j - 1]) {
  109.                 buff = arr[j];
  110.                 arr[j] = arr[j - 1];
  111.                 arr[j - 1] = buff;
  112.             }
  113.         }
  114.         stop--;
  115.         for (int j = stop; j >= start; --j) {
  116.             if(arr[j] > arr[j - 1]) {
  117.                 buff = arr[j];
  118.                 arr[j] = arr[j - 1];
  119.                 arr[j - 1] = buff;
  120.             }
  121.         }
  122.         start++;
  123.     }
  124.     return arr;
  125. }
  126. int *sort_ascending_shell(int arr[],int n){
  127.     for (int dp = n/2; dp > 0; dp/=2) {
  128.         for (int i = dp; i < n; i++) {
  129.             for (int j = i - dp; j >= 0 && arr[j] > arr[j + dp] ; j -= dp) {
  130.                 int buff = arr[j];
  131.                 arr[j] = arr[j + dp];
  132.                 arr[j + dp] = buff;
  133.             }
  134.         }
  135.     }
  136.     return arr;
  137. }
  138. int *sort_descending_shell(int arr[],int n){
  139.     for (int dp = n/2; dp > 0; dp/=2) {
  140.         for (int i = dp; i < n; i++) {
  141.             for (int j = i - dp; j >= 0 && arr[j] < arr[j + dp] ; j -= dp) {
  142.                 int buff = arr[j];
  143.                 arr[j] = arr[j + dp];
  144.                 arr[j + dp] = buff;
  145.             }
  146.         }
  147.     }
  148.     return arr;
  149. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement