Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

कॉम्ब सॉर्ट के लिए सी ++ प्रोग्राम?

कंघी सॉर्ट और बबल सॉर्ट का मूल विचार समान है। दूसरे शब्दों में, कंघी सॉर्ट बबल सॉर्ट पर एक सुधार है। बबल छँटाई तकनीक में, वस्तुओं की तुलना प्रत्येक चरण में अगले आइटम से की जाती है। लेकिन कंघी प्रकार के लिए, वस्तुओं को एक विशिष्ट अंतराल में क्रमबद्ध किया जाता है। प्रत्येक चरण को पूरा करने के बाद, अंतर कम हो जाता है। इस प्रकार का ह्रासमान कारक या सिकुड़न कारक 1.3 है। इसका मतलब है कि प्रत्येक चरण को पूरा करने के बाद अंतराल को 1.3 से विभाजित किया जाता है। सर्वोत्तम मामले के लिए समय जटिलता ओ (एन लॉग एन) है। ओ(एन 2 /2n P ) (p वेतन वृद्धि की संख्या है) औसत मामले के लिए और O(n 2 ) सबसे खराब स्थिति के लिए।

एल्गोरिदम

CombSort(सरणी, आकार)

इनपुट - डेटा की एक सरणी, और सरणी में कुल संख्या

आउटपुट - क्रमबद्ध सरणी

Begin
   gap := size
   flag := true
   while the gap ≠ 1 OR flag = true do
      gap = floor(gap/1.3) //the the floor value after division
      if gap < 1 then
         gap := 1
      flag = false
      for i := 0 to size – gap -1 do
         if array[i] > array[i+gap] then
            swap array[i] with array[i+gap]
            flag = true;
      done
   done
End

उदाहरण

include<iostream>
#include<algorithm>
using namespace std;
void display(int *array, int size){
   for(int i = 0; i<size; i++)
      cout << array[i] << " ";
   cout << endl;
}
void combSort(int *array, int size){
   int gap = size; //initialize gap size with size of array
   bool flag = true;
   while(gap != 1 || flag == true){
      gap = (gap*10)/13; //minimize gap by shrink factor
      if(gap<1)
         gap = 1;
      flag = false;
      for(int i = 0; i<size-gap; i++){ //compare elements with gap
         if(array[i] > array[i+gap]){
            swap(array[i], array[i+gap]);
            flag = true;
         }
      }
   }
}
int main(){
   int n;
   cout << "Enter the number of elements: ";
   cin >> n;
   int arr[n]; //create an array with given number of elements
   cout << "Enter elements:" << endl;
   for(int i = 0; i<n; i++){
      cin >> arr[i];
   }
   cout << "Array before Sorting: ";
   display(arr, n);
   combSort(arr, n);
   cout << "Array after Sorting: ";
   display(arr, n);
}

आउटपुट

Enter the number of elements: 10
Enter elements:
108 96 23 74 12 56 85 42 13 47
Array before Sorting: 108 96 23 74 12 56 85 42 13 47
Array after Sorting: 12 13 23 42 47 56 74 85 96 108

  1. द्विभाजन विधि के लिए C++ कार्यक्रम

    0 और फलन f(x) a और b के बीच होना चाहिए अर्थात f(x) =[a, b ]. कार्य द्विभाजन विधि का उपयोग करके फ़ंक्शन f(x) में अंतराल a और b के बीच स्थित रूट का मान ज्ञात करना है। द्विभाजन विधि क्या है? द्विभाजन विधि का प्रयोग a और b द्वारा परिभाषित दी गई सीमाओं के भीतर फलन f(x) में एक मूल का मान ज्ञात करने के

  1. सी++ में पिरामिड के आयतन के लिए कार्यक्रम

    पिरामिड के आधार के प्रकार के आधार पर पक्षों को देखते हुए पिरामिड के आयतन की गणना करना कार्य है। पिरामिड एक 3-डी आकृति है जिसकी बाहरी सतह पिरामिड के तेज किनारे को बनाने वाले सामान्य बिंदु पर त्रिकोणीय मिलती है। पिरामिड का आयतन उसके आधार के प्रकार पर निर्भर करता है। पिरामिड विभिन्न प्रकार के आधारों

  1. QuickSort के लिए C++ प्रोग्राम?

    क्विकसॉर्ट एक छँटाई तकनीक है जो एक क्रमबद्ध सूची (सरणी) को क्रमबद्ध करने के लिए तुलना का उपयोग करती है। Quicksort को पार्टीशन एक्सचेंज सॉर्ट के रूप में भी जाना जाता है। यह एक स्थिर प्रकार नहीं है, क्योंकि समान प्रकार की वस्तुओं का सापेक्ष क्रम संरक्षित नहीं है। क्विकसॉर्ट एक सरणी पर काम कर सकता है,