Форум программистов, компьютерный форум CyberForum.ru

Select Sort - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 5.00
Alibatros007
0 / 0 / 0
Регистрация: 17.12.2009
Сообщений: 10
17.12.2009, 23:19     Select Sort #1
Здравствуйте.

Задача состоит в том чтоб отсортировать строки матрицы NxM (то есть поменять их местами), по возрастанию первых чисел в строках матрицы.
При компиляции алгоритма
C++
1
2
3
4
5
6
7
8
9
10
11
for(i=0;i<n-1;i++){
      for(j=0;j<m-1;j++){
          if(j==0){
              min=i;
              for(k=i+1;k<m;k++){
                  if(a[k][j]<a[min][j]) min=k;
                  }
                  if(i!=min){
                      t=a[i][j];
                      a[i][j]=a[min][j];
                      a[min][j]=t;}}}}
выдает не то что надо...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.12.2009, 23:19     Select Sort
Посмотрите здесь:

C++ std::sort()
C++ Алгоритм sort
qsort vs sort C++
Quick sort c++ C++
Strand Sort C++
Bubble sort C++
C++ std::sort
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
niXman
Эксперт C++
 Аватар для niXman
3133 / 1445 / 49
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
18.12.2009, 00:09     Select Sort #2
что выдает?
Alibatros007
0 / 0 / 0
Регистрация: 17.12.2009
Сообщений: 10
18.12.2009, 00:13  [ТС]     Select Sort #3
Цитата Сообщение от niXman Посмотреть сообщение
что выдает?

если задать n=3 и m=3
и матрицу
2 1 3
0 2 5
-1 2 3

то вывод таков
-1 1 3
0 2 5
2 2 3
niXman
Эксперт C++
 Аватар для niXman
3133 / 1445 / 49
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
18.12.2009, 00:17     Select Sort #4
покажи весь код программы и скажи, на каком ЯП нужно решить?
Alibatros007
0 / 0 / 0
Регистрация: 17.12.2009
Сообщений: 10
18.12.2009, 00:19  [ТС]     Select Sort #5
Цитата Сообщение от niXman Посмотреть сообщение
покажи весь код программы и скажи, на каком ЯП нужно решить?
#include<iostream>

using namespace std;



C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
int main()
 {
  int a[100][100],n,m,t,i,k,j,min;
  cout<<"Enter N: ";
  cin>>n;
  cout<<"\nEnter M: ";
  cin>>m;
  cout<<"Enter the elements of the matrix: "<<endl;
  for(i=0;i<n;i++){
      for(j=0;j<m;j++){
          cout<<"["<<i<<"]"<<"["<<j<<"]= ";
          cin>>a[i][j];}}
  cout<<"\n\nMatrix: "<<endl;
  for(i=0;i<n;i++){
      for(j=0;j<m;j++){
          cout<<" "<<a[i][j];}
          cout<<endl;}
  cout<<"\n";
  for(i=0;i<n-1;i++){
      for(j=0;j<m;j++){
          if(j==0){
              min=i;}
              for(k=i+1;k<m;k++){
                  if(a[k][j]<a[min][j]) min=k;
                  }
                  if(i!=min){
                      t=a[i][j];
                      a[i][j]=a[min][j];
                      a[min][j]=t;}}}
  for(i=0;i<n;i++){
      for(j=0;j<m;j++){
          cout<<" "<<a[i][j];}cout<<endl;}
  return 0;                           }
С++
niXman
Эксперт C++
 Аватар для niXman
3133 / 1445 / 49
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
18.12.2009, 00:37     Select Sort #6
если позволено писать на с++, нафига изобретать велосипеды?!

вот скелет, допиши сам:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <vector>
#include <iostream>
#include <algorithm>
 
/** предикат */
template<typename T>
struct MyCompare {
    bool operator() (const T& a, const T& b) const {
        return *a.begin() < *b.begin();
    }
};
 
int main() {
    int n, m;
    std::cin >> n >> m;
 
    /** матрица указанного размера */
    std::vector<std::vector<int> > array(m, std::vector<int>(n, 0));
 
    /** итераторы на столбец и строку соответственно */
    std::vector<std::vector<int> >::iterator x = array.begin();
    std::vector<int>::iterator y = x->begin();
 
    /** заполняем */
    for ( ; x != array.end(); x++ ) {
        for ( ; y != x->end(); y++ ) {
            std::cin >> *y;
        }
    }
 
    std::sort(array.begin(), array.end(), MyCompare<std::vector<int> >());
 
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.12.2009, 00:54     Select Sort
Еще ссылки по теме:

C++ sort()
C++ Merge sort
C++ Sort()
Сортировка двумерного массива методом Выбора. Select sort C++
C++ Упорядочите строки по возрастанию методом сортировки выбором (Select Sort)

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Alibatros007
0 / 0 / 0
Регистрация: 17.12.2009
Сообщений: 10
18.12.2009, 00:54  [ТС]     Select Sort #7
Спасибо
Yandex
Объявления
18.12.2009, 00:54     Select Sort
Ответ Создать тему
Опции темы

Текущее время: 15:11. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru