आप दो सरणियों कैसे लिंक करूँ?

वोट
1

मैं एक बुनियादी प्रोग्रामिंग कक्षा में हूँ, और सब कुछ छद्म कोड में किया जाता है।

कैसे आप दो सरणियों लिंक करूं: मेरा प्रश्न है?

मैं एक एकल आयामी सरणी छात्रों नामों को सूचीबद्ध करती है, और मुझे एक दो आयामी सरणी है कि प्रत्येक छात्र के शीर्ष आठ स्कोर को सूचीबद्ध करता है ... यह सब ठीक है और बांका है, लेकिन अब मैं छात्रों द्वारा सरणियों सॉर्ट करने के लिए की जरूरत है नाम। मैं ऑनलाइन दो बार के आसपास poked रहा हूँ और पढ़ किताबें अध्याय के माध्यम से, यह केवल कुछ समय के लिए दो सरणियों को जोड़ने का उल्लेख है, लेकिन कोई उदाहरण दिखाता है।

यह किसी भी सहायता प्रदान की गई है, तो हम बुलबुला-छंटाई का उपयोग कर रहे हैं, और वह यह है कि मैं क्या ... के साथ काफी परिचित मैं नाम सॉर्ट कर सकते हैं कर रहा हूँ, कि आसान हिस्सा है, लेकिन मैं कैसे ग्रेड सॉर्ट करने के लिए तो वे नहीं है पता नहीं है आदेश से बाहर चले जाते हैं।

इनपुट के लिए धन्यवाद!

Sidenote: मैं यह पता लगा मिल गया है! मैं कर कैसे ग्रेग Hewgill कहा था समाप्त हो गया। जैसा कि मैंने उनके सुझाव के लिए मेरी टिप्पणी में डाल दिया, मैं बेतरतीब ढंग से कोड की लाइनों में फेंक जब तक कि विचार मुझे मारा शुरू कर दिया ... यह नहीं दिखता है सुंदर (एक मॉड्यूल के नाम, एक और ग्रेड स्वैप करने के लिए, और एक तीसरे फिर भी बदली एक बहुआयामी सरणी में पहले पर अलग-अलग छात्रों ग्रेड स्वैप करने के लिए), लेकिन यह वास्तव में काम करने के लिए ... एक भाषा में यह परीक्षण करने के लिए कोई रास्ता नहीं है के रूप में मैं कोई संकलक है और न ही मैं वास्तविक कोड अगर में छद्म कोड बनाने के लिए पर्याप्त ज्ञान होना लग रहा था मैं एक डाउनलोड करने के लिए थे, लेकिन यह कागज पर मैं इसे बाहर बताए वास्तव में अच्छा लगता है!

मैं भी नोट में उल्लेख किया है, मैं उनके तेजी से और उपयोगी जानकारी के लिए हर किसी को धन्यवाद करते हैं, मैं वास्तव में भी नहीं सोचा था कि मैं एक उत्तर आज रात मिलता हैं, तो आप हर किसी को अपने सभी की मदद के लिए फिर से धन्यवाद!

जेफरी

02/12/2008 को 09:03
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


4 जवाब

वोट
0

आपका आधार गलत है। आप पहली जगह में दो सरणी नहीं होना चाहिए।

आप में से एक सरणी होना चाहिए वस्तुओं , जिनमें से प्रत्येक एक छात्र का नाम और उसकी स्कोर रखती है:

public class Record
{
    public string Student;
    public int[] Scores;
} 
02/12/2008 को 09:08
का स्रोत उपयोगकर्ता

वोट
1

आप क्या करना चाहते हो सकता है निम्नलिखित है: आप नाम छँटाई रहे हैं और आप दो स्थानों स्वैप करने के लिए है के रूप में, कर ही अंकों के सरणी में स्वैप। इस तरह से, सभी परिवर्तनों कि आप नाम सरणी के लिए कर स्कोर सरणी में परिलक्षित होगा। यह करने के बाद, स्कोर एक ही क्रमबद्ध क्रम में हो जाएगा के रूप में नाम हैं।

वहाँ अलग अलग डेटा संरचनाओं के साथ ऐसा करने का अधिक प्रभावी तरीके, अन्य टिप्पणी दिखाई देने लगेंगे हैं।

02/12/2008 को 09:12
का स्रोत उपयोगकर्ता

वोट
0

दो दृष्टिकोण हैं: पहला, जब नाम छँटाई, हर बार जब आप दो नाम का आदान-प्रदान, पंक्तियाँ (या स्तंभों या जो भी आप उन्हें कॉल करना चाहते हैं) एक ही स्थिति में स्कोर के आदान-प्रदान। अंत में, स्कोर अभी भी नाम के साथ सिंक में होना चाहिए।

दूसरा, बजाय नाम छँटाई की, n-1 के माध्यम से एक तिहाई सरणी है कि अन्य दो सरणियों में से किसी में अनुक्रमित में शामिल होंगे, शुरू में 0 बनाने के लिए, लेकिन फिर हल कर, नाम की तुलना [एक] और नाम [ख], बजाय छँटाई नाम सरणी ही।

02/12/2008 को 09:18
का स्रोत उपयोगकर्ता

वोट
2

इस तरह एक साधारण छात्र वर्ग को परिभाषित करें:

public class Student : IComparable<Student>
{
    public string Name { get; set; }
    public int[] Scores { get; set; }

    #region IComparable<Student> Members

    public int CompareTo(Student other)
    {
        // Assume Name cannot be null
        return this.Name.CompareTo(other.Name);
    }

    #endregion
}

तो और भी आसान

    var students = new[] {
        new Student(){ Name = "B", Scores = new [] { 1,2,3 } },
        new Student(){ Name = "C", Scores = new [] { 3,4,5 } },
        new Student(){ Name = "A", Scores = new [] { 5,6,7 } }
    };

    Array.Sort(students);

आप के लिए काम करेंगे।

02/12/2008 को 09:40
का स्रोत उपयोगकर्ता

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more